?

基于Hadoop系統大數據平臺在天津市地震局的應用

2018-01-28 23:10丁晶李剛譚毅培
電子技術與軟件工程 2017年18期
關鍵詞:測震天津市分布式

丁晶+李剛+譚毅培

摘要

隨著信息化技術的不斷發展,我們所接觸的數據量也在呈爆炸式增長,存儲的數據也由GB、TB級邁向PB、ZB級,對傳統的數據存儲技術帶來了巨大的挑戰。而HDFS分布式存儲系統以其低成本與高效率滿足了我們海量數據存儲的需求。天津市地震局也通過建立起了Hadoop大數據平臺對測震臺網產生的大量寶貴的地震數據進行存儲與應用。

【關鍵詞】地震 存儲技術 數據 Hadoop HDFS

隨著計算機技術、網絡技術的不斷發展,生活中我們所接觸的信息量也在呈爆炸式增長。在地震行業中也是如此,每天最少會產生幾GB的SEED文件,解壓后的文件達到幾十GB,加上其他一些輔助信息和索引信息,每年至少會產生幾十TB的數據量。而且隨著地震臺站數量和強震數據的不斷增多,可以預見今后的測震數據增速會越來越快。如何有效存儲管理這些海量數據,確保這些珍貴數據在任何情況下都不會丟失,是我們急需解決的問題。

針對這一問題,天津市地震局從2014年開始,通過對11臺PC服務器建立起了Hadoop大數據系統,用于進行測震臺網數據的存儲與應用。

1天津市地震局Hadoop系統介紹

Hadoop系統近幾年發展迅速,它是由Apache基金會所開發的分布式系統基礎架構,是一種分布式處理軟件框架,用戶可以在不了解分布式底層細節的情況下,開發分布式程序,并充分利用計算機集群的優勢進行高速運算和安全存儲。Hadoop包括分布式文件系統HDFS、分布式數據庫HBase、海量數據并行編程模型與計算框架MapReduce、分布式數據倉庫Hive、分布式協調系統zookeeper等等。

HDFS即基于Hadoop的分布式文件系統(Hadoop Distributed File System),HDFS具有高容錯性的能力,使得該文件系統具有較好的容錯特性,且可以在通用平臺上使用,故此能夠將該文件系統在廉價的機器上部署(郝偉姣等,2009);HDFS還具備高吞吐量特性,對超大數據集系統的應用程序有著良好的支持與服務。HDFS還可以以流的形式訪問文件系統中的數據。

Hbase是一個分布式的、面向列的開源數據庫;它的底層數據存儲是基于HDFS之上的,采用了主/從架構的模式即Hmaster/Hregionserver結構。

MapReduce是一種編程模型,用于大規模數據集(大于1TB)的并行運算,包括大規模的文字處理、數據挖掘等。

Hive是一個構建在Hadoop上的數據倉庫,通過hive存儲在HDFS平臺上的數據操作與傳統SQL結合起來,讓精通SQL編程而不太擅長java的開發人員能夠輕松的向Hadoop平臺遷移(劉鵬,2013)。

Zookeeper是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分布式同步、組服務等。

天津市地震局于2014年開始建立測試的Hadoop系統,共采用11臺廉價的PC服務器來組建,存儲能力為40TB,采用了主/從(Master/Slave)體系結構(劉鵬,2013),包括1個NameNode主節點、10個DataNode從節點,其中一臺從節點上部署了Secondarynamnenode進程用于主節點的備份,系統結構圖和配置情況如表1所示。

搭建好的系統用于天津市地震局測震臺網連續波形數據在線存儲與服務試驗。

2Hadoop系統的設計

2.1HDFS數據存儲

存儲的數據由TB級邁向PB、ZB級的需求,對傳統的數據存儲技術帶來了巨大的挑戰。而HDFS分布式存儲系統以其低沉本與高效率滿足了我們海量數據存儲的需求。

分布式文件系統HDFS將海量文件存儲在一個大集群的多臺計算機上。HDFS將每一個文件以分塊序列的形式進行存儲。

HDFS架構中包含的節點和其對應的功能:

2.1.1Namenode

Namenode即主控制器服務器,是HDFS系統的管理者,記錄文件數據塊在每個Datanode上的位置和副本信息,協調客戶端對文件的訪問,以及記錄命名空間內的改動或命名空間本身屬性的改動。

由于一旦主節點Namenode的設備發生故障或者Namenode進程宕掉,那么會造成系統中的文件丟失,所以為了提高我局hadoop系統的信息安全性,防止由于單點故障引起的數據丟失,故對Namenode進行備份,將Secondarynamenode節點部署在從節點(dd-11)上。

2.1.2Secondarynamenode

Secondarynamenode是為了防止Namenode成為系統的單點故障而設置的,Secondarynamenode進程會按照一定的時間間隔保存著文件系統元數據的快照,這樣在系統主節點發生故障時能盡可能的減少數據的損失。(由于Secondarynamenode總是落后于Namenode,所以在Namenode宕機時,會造成部分數據的丟失。)

2.1.3Datanode

Datanode是HDFS文件系統中保存數據的節點,HDFS系統會根據你在hdfs-site.xml中設置的值將文件分割成若干的數據塊,存儲在不同的Datanode上。達到冗余備份的作用。

Hadoop平臺可以通過修改配置文件來動態的增刪計算節點,具有良好的可擴展性。Hadoop平臺可以擴展到數千個節點進行大規模集群運算,并且具有對數據的自動備份功能,防止硬件的損壞造成的數據丟失(肖衛青等,2015)。

2.2Hbase簡介

Hbase是基于Hadoop的開源數據庫,是一套具有高可靠性、高性能、列存儲、可伸縮、實時讀寫的數據庫系統。endprint

利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。其目的是處理龐大的表,可以用普通的計算機處理10億行數據,并且有數百萬列元素組成的數據表這張表的索引是行關鍵字。HBase可以直接使用本地的文件系統和Hadoop作為數據存儲方式,不過為了提高數據的可靠性和系統的健壯性,發揮HBase處理大數據量等功能,需要使用Hadoop作為文件系統。

Hbase中主要包含以下幾部分:

2.2.1Hmaster

Hmaster是整個Hbase系統中的主節點,它負責對各個用戶的數據表進行增刪改查,負責管理HRegionServer的負載均衡,調整Region分布,并且在HRegionServer停機后,負責失效HRegionServer上Region遷移。

2.2.2HRegionServer

Hbase中HRegionServer主要負責一些具體的數據存儲,向HDFS文件系統中讀寫數據等。

2.2.3Zookeeper

Zookeeper是Hbase體系中的協調管理節點,提供分布式協作、分布式同步、配置管理等功能。

3Hadoop系統安裝調試與配置

Hadoop系統的安裝:

3.1軟件及版本

如表2所示。

3.2在所有機器上建立相同的用戶(如grid)

useradd –m grid passwd grid之后提示為用戶grid設置密碼

3.3下載安裝Java安裝在/usr下的java文件夾下

注意:安裝前需提高權限(chmod755/mnt/jdk-6u24-linux-i586.bin)

3.4下載hadoop,并且解壓在文件夾下

tar-zxvf/mnt/hadoop-2.5.2

3.5修改各主機名及/etc/hosts

Namenode、datanode中設置所有主機的ip和主機名。

3.6SSH的配置

該配置主要是實現各主機之間執行指令時不需要輸入密碼,需要在所有主機上建立.ssh目錄,執行:mkdir.ssh;在namenode上生成密鑰對,執行ssh-keygen-trsa;將生成的密鑰遠程復制到其他從節點上,執行如下命令:

cd?/.ssh

cpid rsa.pubauthorized keys

scpauthorized keysdd-ll:/home/grid/.ssh

最后進入所有主機的.ssh目錄改變該文件的許可權限:

chmod 644 authorized keys

這樣的話從主節點向其他從節點發起SSH連接時,只有第一次登錄時才需要輸入密碼,以后可以實現無密鑰登錄。

3.7配置相應的環境變量

exportJAVA_HOME=/usr/java/jdkl.6.027/

exportJRE_HOME=/usr/java/jdkl.6.027/

jre

exportPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

exportHADOOP_HOME=/home/grid/hadoop-2.5.2

exportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

exportPATH=$PATH:$HADOOPHOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib

3.8配置etc/hadoop/core-site.xml、etc/hadoop/hdfs-site.xml、etc/hadoop/mapred-site.xml、etc/hadoop/yarn-site.xml等四個文件

如表3所示。

3.9配置masters、slaves等參數

主節點設置為master,從節點設置為slaves

3.10將hadoop主節點的安裝文件復制到其他從節點上

scp-r/home/grid/hadoop-2.5.2dd-ll:/home/

grid

scp>r/home/grid/hadoop-2.5.2dd-12:/home/grid

……

scp-r/home/grid/hadoop-2.5.2dd-20:/home/grid

3.11格式化分布式系統,命令如下

/home/grid/hadoop-2.5.2/bin/hadoopnamenode-format

3.12在主節點上啟動hadoop進程

/home/grid/hadoop-2.5.2/sbin/start-all.sh

3.13在各個節點上運行/usr/java/jdkl.6.O-27/bin/jps檢查各節點進程的啟動情況結果

如圖1所示。

Hbase系統的安裝。

3.14配置Hbase環境變量

exportJAVA_HOME=/usr/java/jdkl.6.0_27/exportHADOOP_HOME=/home/grid/hadoop-2.5.2/

exportHBASE_CLASSPATH=/home/grid/hadoop-2.5.2/etc/hadoopendprint

exportHBASE_MANAGES_ZK=true(表示由Hbase負責啟動和關閉Zookeeper)

3.15配置/conf/hbase-site.xml文件

修改hbase.rootdir,將其指向Hadoop集群的Namenode(端口也必須保持一致),指定Hbase的存儲路徑;設置Zookeeper目錄以及Hmaster的路徑及端口。

3.16配置Hmaster與Hregionserver

在/conf/master中輸入Hmaster的節點,/conf/regionservers中輸入Hregionserver節點。

3.17把Hbase復制到其他機器上命令如下:

scp-r/home/grid/hbase-0.98.11-hadoop2dd-ll:/home/grid

3.18在主節點上啟動hbase進程

/home/grid/hbase-0.98.11-hadoop2/bin/start-hbase.sh

3.19在各個節點上運行/usr/java/jdkl.6.O-27/bin/jps檢查各節點進程的啟動情況

如圖2所示。

4Hadoop系統的應用效果

根據前面方法建立起來的hadoop大數據系統與基于hadoop系統的hbase開源數據庫,可以對天津市地震局測震臺網產生的地震大數據進行分布式存儲與應用,大量的地震波形數據可以以seed格式文件存儲于HDFS文件系統中,也可以以一定時間尺度解析載入Hbase

Hadoop系統HDFS的web管理界面,此圖中可以看到HDFS系統整體運行情況、快照以及任務運行狀態,可以看到整個系統包含有10個從節點,總存儲總容量為35.81TB。圖4是各從節點的運行狀況,其中可以清晰的看到各DataNode的使用情況以及磁盤利用率等數據。圖5是基于Hadoop系統的Hbase開源數據庫系統??梢钥吹礁鱾€Hregionserver節點的基本信息、存儲任務以及數據表的基本情況。

感謝

系統在研究、開發和測試過程中,得到了天津市地震局周利霞、王曉磊、劉磊等的大力支持和幫助,在此表示衷心的感謝。

參考文獻

[1]郝偉姣,周世健,彭大為等.基于HADOOP平臺的云GIS構架研究[J].江西科學,2009,31(01):109-112.

[2]劉鵬.實戰hadoop—開啟通向云計算的捷徑[M].北京:電子工業出版社,2013.

[3]劉軍.大數據處理[M].北京:人民郵電出版社,2015.

[4]王文青.大數據架構下的地震波形數據分析應用淺析[J].電腦編程技巧與維護,2016(09).

[5]肖衛青,楊潤芝,胡開喜等.Hadoop在氣象數據密集型處理領域中的應用[J].氣象科技,2015,43(05):823-828.endprint

猜你喜歡
測震天津市分布式
基于信號精度分析的高速鐵路沿線測震井地震動力反應研究
鐘祥臺測震觀測質量影響淺析
有趣的云
如果畫筆會說話?
遼寧流動測震觀測系統現狀分析
天津市第三屆“未來之星”初中數學邀請賽
基于DDS的分布式三維協同仿真研究
西門子 分布式I/O Simatic ET 200AL
天津市排水專項規劃簡介
基于網絡技術的測震系統在市縣地震部門的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合