劉勇 趙軍 張樂(lè)
摘? 要:當(dāng)今時(shí)代,愈發(fā)龐大的數(shù)據(jù)難以有效處理運(yùn)用和管理,需要一種更加合適的資源獲取處理方式。該文基于大數(shù)據(jù)架構(gòu)結(jié)合網(wǎng)絡(luò)爬蟲、數(shù)據(jù)清洗、信息檢索等前沿技術(shù),設(shè)計(jì)開發(fā)了地震科普知識(shí)資源庫(kù)系統(tǒng)。其中運(yùn)用了J2EE、Python、Hadoop、Elasticsearch、MySQL等技術(shù)。通過(guò)網(wǎng)絡(luò)爬蟲和人工上傳的方式采集地震科普相關(guān)信息資源,經(jīng)過(guò)數(shù)據(jù)清洗轉(zhuǎn)換后對(duì)信息資源進(jìn)行自動(dòng)分類,最后將資源上傳至資源庫(kù)hdfs分布式文件系統(tǒng)并將文件信息保存至Elasticsearch分布式文件索引系統(tǒng),由此實(shí)現(xiàn)大數(shù)據(jù)架構(gòu)下的全文檢索。同時(shí),建立資源庫(kù)的后臺(tái)管理系統(tǒng),用于網(wǎng)站的日常管理和維護(hù)。相比以前的集群文件系統(tǒng)更加高速便捷、更加的安全穩(wěn)定。
關(guān)鍵詞:大數(shù)據(jù)? Hadoop? Elasticsearch? MySQL? Python
Abstract: In today's era, the increasingly large data is difficult to effectively handle the application and management, and a more appropriate resource acquisition and processing method is needed. Based on the big data architecture combined with web reptile, data cleaning, information retrieval and other cutting-edge technologies, this paper designs and develops the seismic science knowledge resource database system. It uses technologies such as J2EE, Python, Hadoop, Elasticsearch, and MySQL. The seismic science related information resources are collected by means of web crawling and manual uploading, and the information resources are automatically classified after data cleaning and conversion, and finally the resources are uploaded to the resource library hdfs ,distributed file system, and the file information is saved to the Elasticsearch ,distributed file index. So the system enables full-text retrieval under the big data architecture. At the same time, the background management system of the resource library is established for daily management and maintenance of the website. It is more convenient and safer than the previous cluster file system.
1? 科普知識(shí)資源庫(kù)的建設(shè)現(xiàn)狀
1.1 資源庫(kù)數(shù)據(jù)時(shí)效性低
一些資源在采集時(shí)沒(méi)有考慮到數(shù)據(jù)資源的不斷更新性特征,數(shù)據(jù)資源缺乏時(shí)代性和建設(shè)性,造成數(shù)據(jù)庫(kù)的資源質(zhì)量低[1]。
1.2 資源庫(kù)數(shù)據(jù)利用率低
由于資源庫(kù)的建設(shè)缺乏先進(jìn)的理念和技術(shù)架構(gòu),造成各類資源庫(kù)分散在不同的系統(tǒng)中,數(shù)據(jù)資源的整合缺乏層次性和規(guī)律性,整體上體現(xiàn)出綜合性差。在使用搜索功能時(shí),一切與搜索目標(biāo)相關(guān)的資源都會(huì)呈現(xiàn)出來(lái),但是這些資源,衡量的標(biāo)準(zhǔn)、規(guī)劃的層次不統(tǒng)一,造成實(shí)際應(yīng)用中的搜索難度大,利用率低。
1.3 資源庫(kù)數(shù)據(jù)冗雜質(zhì)量低
為了提高資源庫(kù)的可用性和有效性,在資源庫(kù)的建設(shè)中,往往采用大批量、大規(guī)模資源采購(gòu)的方式,希望能夠提高資源的應(yīng)用水平。但是在實(shí)際應(yīng)用中,這些采購(gòu)的資源觀點(diǎn)重復(fù)、模式相仿、形式單一,甚至有些存在明顯的學(xué)術(shù)性錯(cuò)誤,資源庫(kù)的整體數(shù)量較多但是質(zhì)量較低,無(wú)法有效地服務(wù)于用戶。
2? 地震科普資源庫(kù)的架構(gòu)
地震科普資源庫(kù)是通過(guò)網(wǎng)絡(luò)爬蟲和人工上傳兩種方式進(jìn)行數(shù)據(jù)采集并將記錄保存至數(shù)據(jù)庫(kù)中,然后對(duì)采集到的數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,清洗之后根據(jù)既有分類標(biāo)準(zhǔn)將資源劃分到對(duì)應(yīng)的類別,最后,將文件上傳至HDFS中,同時(shí)將資源信息保存至Elasticsearch中,以便用戶進(jìn)行全文檢索和資源下載,資源庫(kù)的整體架構(gòu)如圖1所示。
3? 地震科普資源庫(kù)的功能模塊
3.1 數(shù)據(jù)采集
數(shù)據(jù)采集分人工上傳和網(wǎng)絡(luò)爬蟲兩種,使用爬蟲抓取數(shù)據(jù)可以提高數(shù)據(jù)采集的效率。網(wǎng)絡(luò)爬蟲會(huì)根據(jù)給定網(wǎng)址進(jìn)行爬取,通過(guò)spiderkeeper對(duì)爬蟲進(jìn)行管理。該文運(yùn)用spiderkeeper配合scrapyd管理爬蟲,支持一鍵式部署、定時(shí)爬取任務(wù)、啟動(dòng)、暫停等一系列的操作。
3.2 數(shù)據(jù)處理
由于爬取的數(shù)據(jù)或上傳的數(shù)據(jù)存在重復(fù)或不符合資源庫(kù)的需求等問(wèn)題,因此需要對(duì)資源進(jìn)行清洗,將不符合要求的資源過(guò)濾掉。該文通過(guò)計(jì)算文本內(nèi)容的相關(guān)度,將那些內(nèi)容相關(guān)度低的資源過(guò)濾掉。數(shù)據(jù)清洗整體流程如圖2所示。
首先,讀取grasp_data數(shù)據(jù)表中的抓取記錄信息,并判斷數(shù)據(jù)的類型。如果是網(wǎng)頁(yè)類型,按照網(wǎng)頁(yè)內(nèi)容的提取方式提取網(wǎng)頁(yè)中的內(nèi)容;如果不是網(wǎng)頁(yè),判斷是否是文本文件類型(分別判斷txt、doc、docx、xls、xlsx、pdf),如果是文本類型,根據(jù)文本類型按照相應(yīng)的方式提取其文本內(nèi)容;如果不是文本類文件,再判斷是否為圖片/視頻類型,如果是圖片或視頻,則提取其文件名稱內(nèi)容,否則直接結(jié)束。
其次,采用IK分詞技術(shù)對(duì)提取到的文本內(nèi)容進(jìn)行切分,去除無(wú)用的停用詞,保留可以代表文件內(nèi)容的關(guān)鍵詞,同時(shí)讀取數(shù)據(jù)庫(kù)中的關(guān)鍵詞及權(quán)重信息?;赩SM算法計(jì)算文本內(nèi)容的相似度并設(shè)定閾值條件,相似度大于閾值說(shuō)明文件符合要求,小于閾值則文件不符合要求。
最后,更新數(shù)據(jù)庫(kù)抓取數(shù)據(jù)表中的數(shù)據(jù)處理標(biāo)識(shí)和數(shù)據(jù)刪除標(biāo)識(shí)。
3.3 資源存儲(chǔ)
地震科普資源庫(kù)中的資源類型包括網(wǎng)頁(yè)、文本、圖片、視頻等,數(shù)據(jù)類型較多,數(shù)據(jù)量較大,針對(duì)數(shù)據(jù)類型較多,建立sql數(shù)據(jù)表,將數(shù)據(jù)類型作為一個(gè)表項(xiàng)進(jìn)行存儲(chǔ),將不同的數(shù)據(jù)存儲(chǔ)到一個(gè)sql表當(dāng)中,針對(duì)數(shù)據(jù)量較多,采用分布式文件系統(tǒng),可以對(duì)海量數(shù)據(jù)進(jìn)行存儲(chǔ)。
3.4 資源檢索
用戶可以通過(guò)輸入關(guān)鍵字、選擇標(biāo)簽、選擇資源分類等多種方式進(jìn)行資源的在線檢索,系統(tǒng)通過(guò)用戶輸入的信息進(jìn)行統(tǒng)計(jì),并提交到多個(gè)服務(wù)器上進(jìn)行分布式資源檢索,利用集群將多臺(tái)服務(wù)器的檢索結(jié)果進(jìn)行高速運(yùn)算和存儲(chǔ)并返回給用戶。利用ES框架構(gòu)建索引庫(kù),提供搜索服務(wù),Restful API支持搜索器可以在多臺(tái)機(jī)器上相互合作、相互分工進(jìn)行信息發(fā)現(xiàn),以提高信息發(fā)現(xiàn)和更新速度;索引器可以將索引分布在不同的機(jī)器上,以減小索引對(duì)機(jī)器的要求。返回的結(jié)果需要經(jīng)過(guò)多次的數(shù)據(jù)清洗,避免出現(xiàn)錯(cuò)誤數(shù)據(jù)。系統(tǒng)將采納率高、閱讀次數(shù)多的資源進(jìn)行優(yōu)先展示。
4? 相關(guān)技術(shù)
HDFS分布式文件存儲(chǔ)系統(tǒng)主要用于各類資源的存儲(chǔ)和下載,可運(yùn)行于廉價(jià)的商用機(jī)器集群上,對(duì)硬件要求低,且具有很大商業(yè)價(jià)值。Elasticsearch是一個(gè)實(shí)時(shí)的分布式搜索和分析引擎,是天生為分布式執(zhí)行數(shù)據(jù)分析操作而生的架構(gòu),海量數(shù)據(jù)下的近實(shí)時(shí)(秒級(jí))性能支持,以及無(wú)比強(qiáng)大的搜索和聚合分析的語(yǔ)法支持,讓ES更加適合進(jìn)行大數(shù)據(jù)場(chǎng)景下的數(shù)據(jù)分析應(yīng)用。
5? 結(jié)語(yǔ)
在當(dāng)今數(shù)據(jù)龐大可用度普遍不高的現(xiàn)狀下,該文基于大數(shù)據(jù)架構(gòu)開發(fā)的地震科普知識(shí)資源庫(kù)系統(tǒng)對(duì)地震數(shù)據(jù)有效地處理分析,并保證信息的可用性和時(shí)效性,為地震科普資源提供一個(gè)高效的使用平臺(tái)。在數(shù)據(jù)量日益龐大的社會(huì)趨勢(shì)下,大數(shù)據(jù)相關(guān)技術(shù)必定會(huì)得到更為長(zhǎng)足的發(fā)展。
參考文獻(xiàn)
[1] Adrien Grand .Frame of Reference and Roaring Bitmaps[Z].2015-02-18.
[2] 懷特.Hadoop權(quán)威指南(中文版)[M].北京:清華大學(xué)出版社,2010.
[3] 范繼魏.教學(xué)資源庫(kù)現(xiàn)狀及發(fā)展趨勢(shì)分析[J].現(xiàn)代商貿(mào)工業(yè),2016,37(31):153-154.
[4] Clinton Gormley,Zachary Tong.Elasticsearch:權(quán)威指南(中文版)[EB/OL].https://www.doc88.com/p-9993865282100.html.
[5] 董西成.Hadoop技術(shù)內(nèi)幕:深入解析MapReduce架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理[M].北京:機(jī)械工業(yè)出版社,2013.