廖春瓊
摘 要:傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,在單表中數(shù)據(jù)量達(dá)到上千萬時,不論怎么優(yōu)化,查詢速度都難令人滿意,用分布式并行處理的大數(shù)據(jù)環(huán)境來處理數(shù)據(jù)讀寫速度問題,用分布式列存儲數(shù)據(jù)庫提高表中數(shù)據(jù)檢索速度,在性能上會有比較顯著的提升。
關(guān)鍵詞:大數(shù)據(jù);分布式;Hadoop;并行運(yùn)算
一、背景和目的
隨著社會逐步步入信息時代,各行各業(yè)的信息化建設(shè)都進(jìn)行跨越性的發(fā)展,各類型數(shù)據(jù)呈現(xiàn)爆炸式增長。國際數(shù)據(jù)公司IDC2011年發(fā)布的Digital Universe Study,全球信息總量每兩年就會增長一倍,在2011年,全球被創(chuàng)建和被復(fù)制的數(shù)據(jù)總量為1.8ZB(1.8萬億GB),預(yù)計到2020年這一數(shù)值將增長到35ZB。數(shù)據(jù)量每上升一個數(shù)量級,就會要求IT具備相應(yīng)的高效率處理能力(包括存儲、運(yùn)算、查詢、展現(xiàn)及成本等),大數(shù)據(jù)Hadoop系統(tǒng)為提升IT的數(shù)據(jù)處理能力在效率及性能方面提供了較好的支持。
Hadoop系統(tǒng)基礎(chǔ)的組件包括了HDFS、MapReduce和HBase,HDFS為海量的數(shù)據(jù)提供了存儲,而MapReduce為海量的數(shù)據(jù)提供了計算,HBase則提供高可靠性、高性能、面向列、可伸縮的分布式大規(guī)模結(jié)構(gòu)化存儲集群。HDFS采用分布式技術(shù)和低成本存儲設(shè)備解決了對全類型數(shù)據(jù)(結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化)的存儲、查詢,MapReduce是并行處理大數(shù)據(jù)集的軟件框架,使大數(shù)據(jù)集能在分布式環(huán)境下進(jìn)行并行運(yùn)算,HBase是一個分布式、面向列的適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫,可通過HBase中數(shù)據(jù)表的rowkey實(shí)現(xiàn)快速檢索查詢。
二、實(shí)例系統(tǒng)環(huán)境搭建
運(yùn)行環(huán)境需搭建一個最基礎(chǔ)的Hadoop系統(tǒng)運(yùn)行環(huán)境,實(shí)驗(yàn)環(huán)境安裝步驟:(1)軟件系統(tǒng)環(huán)境準(zhǔn)備,安裝操作系統(tǒng)、網(wǎng)絡(luò)配置能相互ping通,按照Hostname定義服務(wù)器名稱,并在
/etc/hosts中增加集群中3臺服務(wù)器的名稱和ip;(2)安裝jdk,配置jdk運(yùn)行環(huán)境,需要在集群中的三臺服務(wù)器上都安裝;(3)創(chuàng)建Hadoop運(yùn)行賬戶;(4)在3臺服務(wù)器之間配置SSH無密碼登錄;(5) 安裝配置Hadoop;1) 用Hadoop運(yùn)行賬戶解壓安裝文件;2)用root用戶在/etc/profile中配置Hadoop運(yùn)行環(huán)境變量,需要在集群中的三臺服務(wù)器上都配置修改;3)修改Hadoop運(yùn)行配置文件core-site.xml、hdfs-site.xml、yarn-site.xml和slaves文件;4) 同步/etc/hosts、/etc/profile和Hadoop運(yùn)行配置文件core-site.xml、hdfs-site.xml、yarn-site.xml;5) 啟動
Hadoop并檢查Master和Slave的進(jìn)程,并驗(yàn)證集群是否可用。(6)安裝配置HBase。
三、設(shè)計及實(shí)現(xiàn)
本次實(shí)現(xiàn)中利用交通運(yùn)營車輛的GPS定位信息數(shù)據(jù),數(shù)據(jù)文件大小約300G,記錄總條數(shù)約20億條,數(shù)據(jù)中包括車輛基本信息(車牌號、車牌顏色、車輛歸屬行業(yè)、車輛歸屬省市等)和車輛定位信息(定位時間、經(jīng)度、緯度、車輛狀態(tài)等)。
1、HBase數(shù)據(jù)表設(shè)計原則:1) 建表時按照車輛歸屬省市劃分region(提升數(shù)據(jù)讀寫性能);2) 數(shù)據(jù)表中rowkey定義為:車牌號_車牌顏色_定位時間;3) 車輛基本信息和車輛定位信息都放在一個family(列簇),字段信息可自動擴(kuò)展。參考建表腳本:create 'gpsinfo', {NAME => 'vehicle', COMPRESSION =>
'SNAPPY'},
{SPLITS => ['京','吉','遼','蒙','晉','冀','津','新','寧','青','甘','陜','藏','云','貴','川','渝','瓊','桂','粵','湘','鄂','皖','魯','贛','閩','豫','浙','蘇','滬','黑']}。
2、本實(shí)現(xiàn)中數(shù)據(jù)處理流程如下描述:1) 從數(shù)據(jù)源(離線文件)中讀取數(shù)據(jù),并進(jìn)行初步清洗寫入HDFS中(生成rowkey);
2)編寫MapReduce程序?qū)⑶逑春驢DFS文件生成HBase的
HFile文件;3) 通過BulkLoad方式將MapReduce生成的HFile加載到HBase中;4)HBase中表數(shù)據(jù)保存在HDFS上;5) 通過
HBase的api提供對外的快速查詢接口。
四、實(shí)例運(yùn)行結(jié)果
在通過發(fā)布出去的接口調(diào)用后,數(shù)據(jù)查詢反饋速度達(dá)到了秒級(內(nèi)網(wǎng)在2秒內(nèi)),利用傳統(tǒng)的設(shè)計實(shí)現(xiàn)模式會遠(yuǎn)遠(yuǎn)大于這個時間,所以大數(shù)據(jù)查詢必將是未來發(fā)展的趨勢。
參考文獻(xiàn):
[1] 董西成,蔡斌,陳湘萍(著)《hadoop技術(shù)內(nèi)幕》機(jī)械工業(yè)出版社2013-05-01
[2] 作者:(英)Garry Turkington譯者:張治起《Hadoop基礎(chǔ)教程》人民郵電出版社2014-01-01