在近年來(lái),云計(jì)算已經(jīng)逐漸成為了國(guó)內(nèi)外計(jì)算機(jī)研究領(lǐng)域的熱門名詞,云計(jì)算是一種基于互聯(lián)網(wǎng)平臺(tái)的超級(jí)計(jì)算模式,其借助互聯(lián)網(wǎng)中的海量資源為計(jì)算機(jī)用戶提供了全新的數(shù)據(jù)服務(wù),其中Hadoop的開源更是為谷歌公司實(shí)現(xiàn)了GFS系統(tǒng)的操作,并一躍成為了云計(jì)算平臺(tái)中的標(biāo)準(zhǔn)數(shù)據(jù)模型。本文將在對(duì)云計(jì)算平臺(tái)進(jìn)行簡(jiǎn)要闡述的基礎(chǔ)上,基于Hadoop+HBase+Hive分布式技術(shù),對(duì)云計(jì)算平臺(tái)的搭建進(jìn)行相關(guān)的設(shè)計(jì)和研究。
云計(jì)算的出現(xiàn)很好的解決了計(jì)算機(jī)操作中大數(shù)據(jù)的存儲(chǔ)與分析難題。云計(jì)算是由位于網(wǎng)絡(luò)空間的服務(wù)器將其所計(jì)算與存儲(chǔ)的數(shù)據(jù)資源以服務(wù)的方式提供給計(jì)算機(jī)用戶,并以此完成信息處理任務(wù)的方式,云計(jì)算幾乎囊括了網(wǎng)格計(jì)算、并行計(jì)算、分布式計(jì)算、網(wǎng)絡(luò)存儲(chǔ)技術(shù)以及虛擬化技術(shù)等等一些傳統(tǒng)計(jì)算機(jī)技術(shù)的所有用途和優(yōu)點(diǎn)。從普遍意義上來(lái)說(shuō),云計(jì)算其實(shí)就是一種以虛擬化手段和技術(shù)對(duì)各種資源進(jìn)行網(wǎng)絡(luò)服務(wù),并根據(jù)用戶的實(shí)際用量來(lái)進(jìn)行收費(fèi)。云計(jì)算并不需要專人管理便可提供各式資源服務(wù)。目前云計(jì)算平臺(tái)大多數(shù)為商業(yè)性質(zhì),但Hadoop開源卻是免費(fèi)的,其開源不僅為google公司帶去了GFS配置,并且采用的是Java語(yǔ)言編程,可移植性強(qiáng),能夠?yàn)樵朴?jì)算的研究提供一個(gè)絕佳的平臺(tái)。Hadoop是Apache下的開源分布式系統(tǒng)架構(gòu),其特征在于低成本的存儲(chǔ)量和高效率的工作性質(zhì),其強(qiáng)大的可移植性能使其能夠在PC機(jī)上建立分布式集群,并以此來(lái)處理不同的數(shù)據(jù)資源。
HDFS
HDFS即Hadoop分布式文件系統(tǒng),其與現(xiàn)有的分布式文件系統(tǒng)既有相通之處,也存著明顯的不同。HDFS采用了主/從架構(gòu),具有高度的容錯(cuò)性,在HDFS中包括一個(gè)控制節(jié)點(diǎn)與多個(gè)數(shù)據(jù)節(jié)點(diǎn),其中控制節(jié)點(diǎn)為Namenode,是中心的服務(wù)器,用于管理和處理文件操作,并為客戶端建立映射。數(shù)據(jù)節(jié)點(diǎn)Datanode則主要負(fù)責(zé)本節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ),接收客戶端請(qǐng)求,并在控制節(jié)點(diǎn)的操作下進(jìn)行數(shù)據(jù)塊的創(chuàng)建、復(fù)制和刪除等。
HDFS中的大文件都被分解為多個(gè)數(shù)據(jù)塊,所有的數(shù)據(jù)塊默認(rèn)存儲(chǔ)量為64個(gè)數(shù)據(jù)單位,數(shù)據(jù)塊通常存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)中,每一數(shù)據(jù)塊都有相應(yīng)的備份數(shù)量,一般備份數(shù)默認(rèn)為3,這樣一來(lái),在云計(jì)算中數(shù)據(jù)就能夠得到可靠地安全性保障。
HBase
Hbase為Google Bigtable打造了的開源實(shí)現(xiàn)其不僅能夠快速的讀取和存儲(chǔ)海量數(shù)據(jù),并且可在普通PC機(jī)上搭建集群,利用面向列的分布式數(shù)據(jù)庫(kù)來(lái)進(jìn)行數(shù)據(jù)存儲(chǔ),HBase與一般的傳統(tǒng)數(shù)據(jù)庫(kù)并不相同,由于其采用了基于列存儲(chǔ)模式,能夠及其便捷的為數(shù)據(jù)庫(kù)中數(shù)據(jù)提供物理相鄰的存儲(chǔ)單元。讀取數(shù)據(jù)時(shí)只需要查詢數(shù)據(jù)列即可,既方便了用戶操作,又有效降低了系統(tǒng)工作性能的消耗。
Hive
在Hadoop中還包括了Hive數(shù)據(jù)倉(cāng)庫(kù)工具,Hive能夠?qū)ο到y(tǒng)中結(jié)構(gòu)化的數(shù)據(jù)文件進(jìn)行映射,使其以數(shù)據(jù)表形式展示,并為系統(tǒng)提供了與SQL語(yǔ)句相似的查詢功能,其在此基礎(chǔ)上還為用戶提供了直接編譯功能,使用戶能夠很好的操作和使用云計(jì)算平臺(tái)中的海量數(shù)據(jù)。
Hive包括用戶接口、元數(shù)據(jù)存儲(chǔ)、編譯器、優(yōu)化器和執(zhí)行器等。在用戶接口中又包括命令行界面、Client以及WUI。命令行界面是Hive中最常用的接口。元數(shù)據(jù)存儲(chǔ)主要功能是為了避免多個(gè)用戶進(jìn)行元數(shù)據(jù)搭建,元數(shù)據(jù)存儲(chǔ)中所存儲(chǔ)的數(shù)據(jù)主要由表數(shù)據(jù)所在目錄、表名和表屬性等等,編譯器與優(yōu)化器能夠完成類似SQL語(yǔ)句的語(yǔ)法及詞法的分析,同時(shí)還可以為用戶提供查詢計(jì)劃。Hive的所有數(shù)據(jù)都存儲(chǔ)在Hadoop的HDFS模塊當(dāng)中。
云計(jì)算平臺(tái)的搭建步驟
1.硬件和軟件配置
云計(jì)算平臺(tái)主要包括主控制節(jié)點(diǎn)與三個(gè)數(shù)據(jù)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)端口為一臺(tái)PC機(jī),均配備了Linux的操作系統(tǒng),以及集群框架Hadoop1.0.4和JAVA操作環(huán)境。
2.Hadoop、HBase、Hive環(huán)境配置
為了給Hadoop、HBase、Hive進(jìn)行環(huán)境配置,我們首先要對(duì)Hadoop進(jìn)行基礎(chǔ)文件配置,如hdfs-site.xml、regionservers 、hive-site.xml等,以便為其他系統(tǒng)提供環(huán)境配置。
3.HBase數(shù)據(jù)庫(kù)設(shè)計(jì)
我們?cè)趗serinfo表(用戶信息表)中進(jìn)行數(shù)據(jù)添加,表中共有1億條數(shù)據(jù)為系統(tǒng)提供性能比較,Hbase數(shù)據(jù)庫(kù)設(shè)計(jì)如下表所示:
Userinfo表
Row Key TimeStamp Column Family Column Keys
id t1 Userinfo id,name,sex,city
表中的Row Key為行鍵,也是該表格的主鍵,用戶信息表默認(rèn)為按行鍵進(jìn)行升序, TimeStamp表示時(shí)間戳,能夠記錄系統(tǒng)每次的操作數(shù)據(jù),Coulmn Family代表列族,一個(gè)列族可以由多列組成,但在用戶信息表中。列族只有一個(gè),即userinfo,在該列族下面總共包括了四小列,分別為id、name、sex、city。
結(jié)語(yǔ)
綜上所述,在基于Hadoop+HBase+Hive分布式技術(shù)中進(jìn)行云計(jì)算平臺(tái)的搭建,其控制節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn)均采用的是普通PC機(jī),由此可見(jiàn),整個(gè)云計(jì)算平臺(tái)在進(jìn)行海量數(shù)據(jù)的存儲(chǔ)和處理過(guò)程中,能夠很好的降低系統(tǒng)數(shù)據(jù)存儲(chǔ)成本,并極大地提高系統(tǒng)存儲(chǔ)效率,為廣大用戶提供一個(gè)便捷性的數(shù)據(jù)使用平臺(tái)。
(作者單位:河北農(nóng)業(yè)大學(xué))
作者簡(jiǎn)介:張悅(1988—),女,河北三河人,碩士研究生在讀學(xué)生,研究方向:信息資源管理;
楊學(xué)全(1967—),男,河北淶水人,碩士,教授,研究方向:計(jì)算機(jī)智能信息化。