?

基于Hadoop的非結構化數據管理在石油行業中的研究與實現

2017-09-07 00:02張學偉
數字技術與應用 2017年5期

張學偉

摘要:隨著互聯網及大數據時代的到來,新數據的產生以指數級的速度增長,而這大量的數據中,又以格式不確定的非結構化數據為主。主流的關系型數據庫技術很難駕馭非結構化數據,本文提出基于Hadoop分布式框架的非結構化數據管理體系。采用HBase數據庫技術處理多格式的大量小文件,利用Lucene檢索引擎設計全文檢索策略,并在此基礎上搭建分層體系架構。

關鍵詞:Hadoop;非結構化數據;Lucene

中圖分類號:TP311 文獻標識碼:A 文章編號:1007-9416(2017)05-0054-01

1 引言

在油田開發過程中,積累了大量的信息數據,包括辦公文檔、地震數據、方案文檔及各種圖件等非結構化的數據。將這些數據進行妥善的存儲和管理,進一步挖掘數據價值對油田的可持續發展有著重要意義。

2 Hadoop環境下的文檔存儲技術

2.1 數據庫技術對比分析

以Oracle為代表的傳統關系型數據庫能夠對結構化數據進行很好的管理,也可以通過二進制大對象(BLOB)作為容器來存儲非結構化數據。Oracle在管理與檢索非結構化數據時,需要額外的處理能力和內存才能獲得與文件系統存儲非結構化數據同樣的性能。

由于對硬件性能的高要求,就使得許多針對非結構化數據的存儲方案誕生,其中以開源的Hadoop分布式計算框架為代表。

Hadoop采用流式數據訪問模式,并使用主/從架構模式,通過多數據副本保存和分布式處理,保證了Hadoop能夠以可靠、高效、可伸縮的方式存儲處理數據。

Hadoop是為存儲大文件設計的,在處理大量小文件時,每個小文件都以對象的形式存儲在元數據節點內存中,大量小文件會占用大量內存,這樣元數據節點的內存容量會嚴重制約集群的擴展;Hadoop以流式訪問大量小文件時,需要頻繁請求數據節點以獲取文件,嚴重影響元數據節點和數據節點的IO性能。

HBase是Hadoop中帶有的分布式的、面向列的開源數據庫。使用HBase存儲非結構化數據,具有系統層小文件打包、全局命名空間等多種優勢。

2.2 Oracle和HBase效率比較

仿照Oracle文檔存儲結構,設計HBase表行鍵結構,其中以文檔代碼為行鍵,錄入時間為時間戳,列簇包括項目名稱、文檔名稱、最后更改時間、文檔內容、用戶名稱等,列簇字段可后期根據需要添加,保證了表格的擴展性。

使用Java語言接口分別連接Hbase數據庫及Oracle數據庫,在相同實驗環境下,對文檔上傳下載效率進行測試。上傳20個共130M的文檔文件, Oracle耗時330秒,HBase耗時19秒;下載同樣大小文檔,Oracle耗時42秒,HBase耗時14秒。通過對比得知,使用HBase存儲非結構化數據,文件吞吐效率明顯高于傳統數據庫。

3 全文檢索引擎Lucene

Lucene是一套開源的全文搜索框架。非結構化數據入庫前需要先對文檔進行分詞處理,之后Lucene通過全文掃描,將解析出來的信息寫入索引庫,主要包括:文件名稱、全文本內容、文檔時間、文檔大小、文檔頁數等。當用戶查詢時,Lucene根據建立的索引內容進行查找,并將索引庫的匹配內容返回,類似于字典查字的使用過程。

4 體系架構搭建

以HBase存儲為基礎,結合Lucene全文檢索引擎設計基于Hadoop的非結構化數據管理系統。同時為保證與企業現有的管理系統集成,采用三層架構,通過訪問接口和功能模塊均能訪問底層數據。架構圖如下圖1所示。

存儲層使用Oracle存儲結構化數據,Hbase存儲非結構化數據,Lucene存儲非結構化數據索引。HBase的行操作遵從事務處理模式,確保庫中數據的完整性。同時提供雙機熱備解決方案,當服務器宕機時,其服務和數據可以迅速、完整、無縫的使用備份服務器運行。

接口層定義了標準數據處理接口,方便各模塊調用,并能為不同系統提供文件數據處理、目錄管理、組合查詢、訪問控制、站內消息等可復用功能。

按照統一開發標準,設計可擴展、可復用的模塊資源中心,提供包括文件上傳、下載、預覽、刪除等14個功能模塊,并且各模塊間松耦合,方便不用系統服務間調用。

5 結語

隨著油田信息化工作的不斷深入,企業對不同專業的綜合應用要求也在不斷提高。本文在對比分析傳統數據庫與Hadoop分布式存儲系統的優劣后,提出基于HBase和Lucene的完整數據管理體系,實現文件儲存管理、全庫智能檢索等核心功能。endprint

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合