- 信息內(nèi)容安全管理及應(yīng)用
- 李建華主編
- 1102字
- 2021-10-27 15:46:40
3.4 信息內(nèi)容獲取大數(shù)據(jù)結(jié)構(gòu)存儲
通過爬蟲獲取的信息內(nèi)容數(shù)據(jù),通常來說是海量的,那么在進行進一步的融合分析之前,需要使用合適的方式將其進行存儲。首先,要根據(jù)采集的對象定義數(shù)據(jù)結(jié)構(gòu),用以描述獲取的網(wǎng)絡(luò)媒體信息。對于新聞、論壇、博客、微博等文本類數(shù)據(jù)存儲的數(shù)據(jù)結(jié)構(gòu)具體見表3-1。
表3-1 媒體信息常用數(shù)據(jù)格式

在定義數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,選擇合適的大數(shù)據(jù)組件進行數(shù)據(jù)存儲。這個階段需要綜合考慮整個融合分析的需求、訪問量、信息的數(shù)量以及組件的特性。常用于大數(shù)據(jù)結(jié)構(gòu)存儲的組件有以Hadoop為代表的大數(shù)據(jù)平臺,以及以Elasticsearch為代表的本地搜索引擎。典型的大數(shù)據(jù)存儲架構(gòu)如圖3-17所示。

圖3-17 典型大數(shù)據(jù)存儲架構(gòu)
其中,消息隊列組件Kafka用于存儲待進一步處理的海量數(shù)據(jù)。Kafka有高吞吐量、可定義的副本存儲、分布式高可用等特性。作為數(shù)據(jù)入庫的第一站,通常分布式的爬蟲引擎通過互聯(lián)網(wǎng)將數(shù)據(jù)采集回來后就寫入Kafka,Kafka以主題(topic,即一組特色的消息)為單位定義作業(yè)組,例如,同一組關(guān)鍵詞的采集信息可以存儲同一個topic待后續(xù)處理。
借助Kafka可將數(shù)據(jù)采集和數(shù)據(jù)處理分開異步進行。對于存入Kafka的數(shù)據(jù),可以以訂閱方式使用Spark或者MapReduce進行批量的數(shù)據(jù)處理和入庫。兩者的區(qū)別在于,Spark側(cè)重于內(nèi)存和實時計算,而MapReduce需要很小的內(nèi)存,適合離線計算。可以根據(jù)計算資源和場景來平衡選擇。
對于數(shù)據(jù)存儲,通常使用Hbase+Phoenix、YARN、HDFS、Elasticsearch等技術(shù)。HDFS作為Hadoop的核心組件,有著高可用、多副本自動備份、大容量的特性,適合存儲原始的文件,用于離線分析和數(shù)據(jù)重構(gòu)。Hbase是使用HDFS作為存儲空間的NoSQL數(shù)據(jù)庫,Phoenix作為Hbase SQL層的中間件,彌補了Hbase沒有原生二級索引的缺點,同時支持JDBC的API,可以不用操作Hbase的shell而直接使用SQL來進行數(shù)據(jù)的查詢和統(tǒng)計,支持高并發(fā)和高速的隨機讀/寫,便于開發(fā)和接入第三方分析工具。Elasticsearch是分布式的全文檢索引擎,同樣支持海量的數(shù)據(jù)存儲,非常適合列表查詢和統(tǒng)計查詢,如果有基于內(nèi)容的模糊查詢需求,幾乎沒有比Elasticsearch更合適的,但它的缺點是事務(wù)性能不佳。所以,數(shù)據(jù)存儲通常會根據(jù)前臺的功能或分析功能,將不同的數(shù)據(jù)存儲在不同的數(shù)據(jù)倉儲中。
其他的數(shù)據(jù)存儲,如MySQL、Redis也經(jīng)常使用。MySQL通常作為采集任務(wù)分配的后臺數(shù)據(jù)庫,也可以存儲離線計算的統(tǒng)計數(shù)據(jù),用于頁面中統(tǒng)計圖表的快速的數(shù)據(jù)調(diào)取。Redis作為內(nèi)存數(shù)據(jù)庫,通常用于存儲需要高速查詢的Key-Value,可以作為下發(fā)策略的存儲或者采集的瀏覽器Cookie、會話ID(SessionID)、實時計算用到的關(guān)鍵詞策略等頻繁查詢和讀取的數(shù)據(jù)。
最后,大數(shù)據(jù)的資源調(diào)度組件是YARN。YARN用于針對不同的用戶進行集群劃分,從而實現(xiàn)不同的計算任務(wù)相互獨立的并行運行。Spark、MapReduce均可依賴YARN進行計算資源調(diào)度和分配。YARN可面向不同的用戶分配其能使用的大數(shù)據(jù)資源,從而避免不同用戶競爭資源、造成集群運算效率的下降。
- Node Security
- Metasploit Penetration Testing Cookbook(Second Edition)
- 工業(yè)互聯(lián)網(wǎng)安全防護與展望
- 可信計算3.0工程初步
- Practical Network Scanning
- 計算機使用安全與防護
- 工業(yè)物聯(lián)網(wǎng)安全
- .NET安全攻防指南(上冊)
- 網(wǎng)絡(luò)運維親歷記 (網(wǎng)絡(luò)運維紀實文學)
- 模糊測試:強制發(fā)掘安全漏洞的利器
- Digital Forensics with Kali Linux
- API安全技術(shù)與實戰(zhàn)
- 編譯與反編譯技術(shù)實戰(zhàn)
- 信息技術(shù)基礎(chǔ):提高篇·實驗與習題
- 黑客攻防實戰(zhàn)從入門到精通