劉勇 趙軍 張樂


摘? 要:當今時代,愈發龐大的數據難以有效處理運用和管理,需要一種更加合適的資源獲取處理方式。該文基于大數據架構結合網絡爬蟲、數據清洗、信息檢索等前沿技術,設計開發了地震科普知識資源庫系統。其中運用了J2EE、Python、Hadoop、Elasticsearch、MySQL等技術。通過網絡爬蟲和人工上傳的方式采集地震科普相關信息資源,經過數據清洗轉換后對信息資源進行自動分類,最后將資源上傳至資源庫hdfs分布式文件系統并將文件信息保存至Elasticsearch分布式文件索引系統,由此實現大數據架構下的全文檢索。同時,建立資源庫的后臺管理系統,用于網站的日常管理和維護。相比以前的集群文件系統更加高速便捷、更加的安全穩定。
關鍵詞:大數據? 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? 科普知識資源庫的建設現狀
1.1 資源庫數據時效性低
一些資源在采集時沒有考慮到數據資源的不斷更新性特征,數據資源缺乏時代性和建設性,造成數據庫的資源質量低[1]。
1.2 資源庫數據利用率低
由于資源庫的建設缺乏先進的理念和技術架構,造成各類資源庫分散在不同的系統中,數據資源的整合缺乏層次性和規律性,整體上體現出綜合性差。在使用搜索功能時,一切與搜索目標相關的資源都會呈現出來,但是這些資源,衡量的標準、規劃的層次不統一,造成實際應用中的搜索難度大,利用率低。
1.3 資源庫數據冗雜質量低
為了提高資源庫的可用性和有效性,在資源庫的建設中,往往采用大批量、大規模資源采購的方式,希望能夠提高資源的應用水平。但是在實際應用中,這些采購的資源觀點重復、模式相仿、形式單一,甚至有些存在明顯的學術性錯誤,資源庫的整體數量較多但是質量較低,無法有效地服務于用戶。
2? 地震科普資源庫的架構
地震科普資源庫是通過網絡爬蟲和人工上傳兩種方式進行數據采集并將記錄保存至數據庫中,然后對采集到的數據進行數據清洗,清洗之后根據既有分類標準將資源劃分到對應的類別,最后,將文件上傳至HDFS中,同時將資源信息保存至Elasticsearch中,以便用戶進行全文檢索和資源下載,資源庫的整體架構如圖1所示。
3? 地震科普資源庫的功能模塊
3.1 數據采集
數據采集分人工上傳和網絡爬蟲兩種,使用爬蟲抓取數據可以提高數據采集的效率。網絡爬蟲會根據給定網址進行爬取,通過spiderkeeper對爬蟲進行管理。該文運用spiderkeeper配合scrapyd管理爬蟲,支持一鍵式部署、定時爬取任務、啟動、暫停等一系列的操作。
3.2 數據處理
由于爬取的數據或上傳的數據存在重復或不符合資源庫的需求等問題,因此需要對資源進行清洗,將不符合要求的資源過濾掉。該文通過計算文本內容的相關度,將那些內容相關度低的資源過濾掉。數據清洗整體流程如圖2所示。
首先,讀取grasp_data數據表中的抓取記錄信息,并判斷數據的類型。如果是網頁類型,按照網頁內容的提取方式提取網頁中的內容;如果不是網頁,判斷是否是文本文件類型(分別判斷txt、doc、docx、xls、xlsx、pdf),如果是文本類型,根據文本類型按照相應的方式提取其文本內容;如果不是文本類文件,再判斷是否為圖片/視頻類型,如果是圖片或視頻,則提取其文件名稱內容,否則直接結束。
其次,采用IK分詞技術對提取到的文本內容進行切分,去除無用的停用詞,保留可以代表文件內容的關鍵詞,同時讀取數據庫中的關鍵詞及權重信息。基于VSM算法計算文本內容的相似度并設定閾值條件,相似度大于閾值說明文件符合要求,小于閾值則文件不符合要求。
最后,更新數據庫抓取數據表中的數據處理標識和數據刪除標識。
3.3 資源存儲
地震科普資源庫中的資源類型包括網頁、文本、圖片、視頻等,數據類型較多,數據量較大,針對數據類型較多,建立sql數據表,將數據類型作為一個表項進行存儲,將不同的數據存儲到一個sql表當中,針對數據量較多,采用分布式文件系統,可以對海量數據進行存儲。
3.4 資源檢索
用戶可以通過輸入關鍵字、選擇標簽、選擇資源分類等多種方式進行資源的在線檢索,系統通過用戶輸入的信息進行統計,并提交到多個服務器上進行分布式資源檢索,利用集群將多臺服務器的檢索結果進行高速運算和存儲并返回給用戶。利用ES框架構建索引庫,提供搜索服務,Restful API支持搜索器可以在多臺機器上相互合作、相互分工進行信息發現,以提高信息發現和更新速度;索引器可以將索引分布在不同的機器上,以減小索引對機器的要求。返回的結果需要經過多次的數據清洗,避免出現錯誤數據。系統將采納率高、閱讀次數多的資源進行優先展示。
4? 相關技術
HDFS分布式文件存儲系統主要用于各類資源的存儲和下載,可運行于廉價的商用機器集群上,對硬件要求低,且具有很大商業價值。Elasticsearch是一個實時的分布式搜索和分析引擎,是天生為分布式執行數據分析操作而生的架構,海量數據下的近實時(秒級)性能支持,以及無比強大的搜索和聚合分析的語法支持,讓ES更加適合進行大數據場景下的數據分析應用。
5? 結語
在當今數據龐大可用度普遍不高的現狀下,該文基于大數據架構開發的地震科普知識資源庫系統對地震數據有效地處理分析,并保證信息的可用性和時效性,為地震科普資源提供一個高效的使用平臺。在數據量日益龐大的社會趨勢下,大數據相關技術必定會得到更為長足的發展。
參考文獻
[1] Adrien Grand .Frame of Reference and Roaring Bitmaps[Z].2015-02-18.
[2] 懷特.Hadoop權威指南(中文版)[M].北京:清華大學出版社,2010.
[3] 范繼魏.教學資源庫現狀及發展趨勢分析[J].現代商貿工業,2016,37(31):153-154.
[4] Clinton Gormley,Zachary Tong.Elasticsearch:權威指南(中文版)[EB/OL].https://www.doc88.com/p-9993865282100.html.
[5] 董西成.Hadoop技術內幕:深入解析MapReduce架構設計與實現原理[M].北京:機械工業出版社,2013.