国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

云計(jì)算平臺(tái)的搭建與研究

2014-06-20 21:19:40熊剛黃明和
無(wú)線(xiàn)互聯(lián)科技 2014年2期
關(guān)鍵詞:云計(jì)算

熊剛 黃明和

摘 要:云計(jì)算是當(dāng)前國(guó)內(nèi)外比較熱門(mén)的研究課題。Hadoop開(kāi)源實(shí)現(xiàn)了谷歌公司的GFS(Google File System),并且成為云計(jì)算平臺(tái)的標(biāo)準(zhǔn)模型。本文在對(duì)Hadoop的核心組件HDFS和子項(xiàng)目HBase、Hive深入分析基礎(chǔ)上,基于Hadoop+HBase+Hive搭建起云計(jì)算平臺(tái),經(jīng)過(guò)實(shí)驗(yàn)證明云計(jì)算平臺(tái)具有查詢(xún)速度快和高容錯(cuò)性等特點(diǎn)。

關(guān)鍵詞:云計(jì)算;Hadoop;HDFS;HBase;Hive

1 引言

為了解決大數(shù)據(jù)的存儲(chǔ)和分析的問(wèn)題,云計(jì)算[1]的解決方案應(yīng)運(yùn)而生。云計(jì)算綜合了分布式計(jì)算、并行計(jì)算、網(wǎng)格計(jì)算、網(wǎng)絡(luò)存儲(chǔ)技術(shù)、虛擬化技術(shù)和負(fù)載均衡等傳統(tǒng)計(jì)算機(jī)技術(shù)。實(shí)質(zhì)上,云計(jì)算就是通過(guò)虛擬化技術(shù)將相應(yīng)的硬件資源和軟件資源構(gòu)建為虛擬化資源池,通過(guò)網(wǎng)絡(luò)的方式,按照自身需要獲取其中的資源,根據(jù)實(shí)際使用量來(lái)付費(fèi),并且不用管理他們。當(dāng)前,云計(jì)算平臺(tái)眾多,但大多數(shù)是商業(yè)平臺(tái),而Hadoop是免費(fèi)的,它開(kāi)源實(shí)現(xiàn)了谷歌公司的GFS(Google File System),采用Java語(yǔ)言編程,具有Java可移植性強(qiáng)等特點(diǎn),從而為研究云計(jì)算提供了平臺(tái)。

2 Hadoop介紹

Hadoop[2]是Apache的一個(gè)開(kāi)源分布式系統(tǒng)架構(gòu),具有低存儲(chǔ)成本、高效率、高容錯(cuò)性、高擴(kuò)展性及高可移植性等主要優(yōu)點(diǎn),它可以在大量廉價(jià)的普通PC機(jī)器上搭建起分布式集群,通過(guò)分布式集群來(lái)存儲(chǔ)和處理海量數(shù)據(jù)。

Apache Hadoop項(xiàng)目包含許多個(gè)子項(xiàng)目,下面我們主要介紹本課題所用到的幾個(gè)子項(xiàng)目。

2.1 HDFS

HDFS[3](Hadoop Distributed File System)是Hadoop分布式文件系統(tǒng),它采用主/從架構(gòu),由一個(gè)控制節(jié)點(diǎn)(Namenode)和多個(gè)數(shù)據(jù)節(jié)點(diǎn)(Datanode)組成。其中,控制節(jié)點(diǎn)是中心服務(wù)器,負(fù)責(zé)管理文件系統(tǒng)的命名空間以及客戶(hù)端對(duì)文件的操作,同時(shí)負(fù)責(zé)建立數(shù)據(jù)塊和數(shù)據(jù)節(jié)點(diǎn)的映射關(guān)系。數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)管理本節(jié)點(diǎn)上的存儲(chǔ),響應(yīng)客戶(hù)端的讀寫(xiě)請(qǐng)求,同時(shí)在控制節(jié)點(diǎn)的統(tǒng)一指揮下進(jìn)行數(shù)據(jù)塊的創(chuàng)建、復(fù)制和刪除。HDFS的工作流程及架構(gòu)圖如圖1所示。

在HDFS中,一個(gè)大文件其實(shí)被分成一個(gè)或多個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊默認(rèn)是64MB,存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)中,每個(gè)數(shù)據(jù)塊都有一定數(shù)量的備份,備份數(shù)是可配置的,默認(rèn)備份數(shù)是3。通過(guò)這種方式,來(lái)提高數(shù)據(jù)安全性和可靠性。

2.2 HBase

HBase(Hadoop Database)是Google Bigtable的開(kāi)源實(shí)現(xiàn),是一個(gè)面向列的分布式數(shù)據(jù)庫(kù)。HBase就是為存儲(chǔ)和快速讀取海量數(shù)據(jù)而專(zhuān)門(mén)設(shè)計(jì)的。利用HBase技術(shù)可在廉價(jià)的PC服務(wù)器上搭建起大規(guī)模存儲(chǔ)集群。HBase不是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),它采用的是基于列存儲(chǔ)模式而不是基于行存儲(chǔ)模式,基于列存儲(chǔ)的好處就是數(shù)據(jù)庫(kù)中表的數(shù)據(jù)按每列存放在物理相鄰的存儲(chǔ)單元里,查詢(xún)數(shù)據(jù)時(shí)只查詢(xún)所在的列,不用把整行數(shù)據(jù)都讀取出來(lái),這樣就能極大的降低I/O的開(kāi)銷(xiāo)。

2.3 Hive

Hive是建立在Hadoop基礎(chǔ)上的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,它將結(jié)構(gòu)化數(shù)據(jù)文件映射成一張數(shù)據(jù)表,并提供了類(lèi)似SQL語(yǔ)句的查詢(xún)功能,通過(guò)類(lèi)似SQL語(yǔ)句直接編譯成MapReduce任務(wù),對(duì)于那些不熟悉MapReduce編程模型的用戶(hù)有很大的幫助。

Hive主要由以下幾部分組成:用戶(hù)接口:Client,CLI和WUI。其中常用的接口是CLI。元數(shù)據(jù)存儲(chǔ):為了避免多個(gè)用戶(hù)建立不同的元數(shù)據(jù),Hive將元數(shù)據(jù)存儲(chǔ)在共享的數(shù)據(jù)庫(kù)服務(wù)器中,如mysql、derby。元數(shù)據(jù)包括表名,表的屬性,表的列屬性,表的數(shù)據(jù)所在目錄等。解釋器、編譯器、優(yōu)化器、執(zhí)行器:前三個(gè)器完成類(lèi)SQL語(yǔ)句從詞法分析、語(yǔ)法分析、編譯、優(yōu)化及查詢(xún)計(jì)劃的生成。生成的查詢(xún)計(jì)劃存儲(chǔ)在HDFS中,由執(zhí)行器調(diào)用執(zhí)行。Hadoop:Hive的數(shù)據(jù)都存儲(chǔ)在HDFS中,大部分查詢(xún)是由MapReduce完成的。

3 云計(jì)算平臺(tái)的搭建步驟

3.1 硬件和軟件配置

云計(jì)算平臺(tái)由一個(gè)控制節(jié)點(diǎn)(Namenode)和三個(gè)數(shù)據(jù)節(jié)點(diǎn)(Datanode)組成,每個(gè)節(jié)點(diǎn)就是一臺(tái)普通的PC服務(wù)器。所有節(jié)點(diǎn)都配置ubuntu10.04版本的Linux操作系統(tǒng),Hadoop1.0.4的集群框架,JDK1.6.29的JAVA環(huán)境。

3.2 Hadoop、HBase、Hive環(huán)境配置

配置Hadoop、HBase、Hive環(huán)境首先需要配置Hadoop中的幾個(gè)文件:hadoop-env.sh、hdfs-site.xml、core-site.xml、hbase-env.sh、hbase-site.xml、regionservers 、hive-env.sh、hive-site.xml,具體配置參見(jiàn)文獻(xiàn)[5]。

3.3 HBase數(shù)據(jù)庫(kù)設(shè)計(jì)

我們?cè)趗serinfo表中添加1億條數(shù)據(jù),以便進(jìn)行下面的性能比較。具體數(shù)據(jù)庫(kù)設(shè)計(jì)如下Userinfo表所示。

Userinfo表

Row Key TimeStamp Column Family Column Keys

id t1 Userinfo id,name,sex,city

其中,Row Key:行鍵,表的主鍵,表默認(rèn)按行鍵升序。TimeStamp:時(shí)間戳,每次操作數(shù)據(jù)所記錄的時(shí)間戳。Coulmn Family:列族,表在水平方向可以有一個(gè)或多個(gè)列族,一個(gè)列族可以由多個(gè)列組成,在這里列族只有userinfo,列族下面有四個(gè)列id,name,sex,city。

4 云計(jì)算平臺(tái)的優(yōu)勢(shì)

4.1 快速查詢(xún)

我們通過(guò)針對(duì)1億數(shù)據(jù)進(jìn)行復(fù)雜SQL查詢(xún),將云計(jì)算平臺(tái)與Oracle進(jìn)行響應(yīng)速度比較。查詢(xún)語(yǔ)句如下:SELECT city,count(1) from userinfo Where city like‘%南昌%Group by city Order By count(1) DESC;得出結(jié)果是:云計(jì)算查詢(xún)時(shí)間僅需92秒,而Oracle查詢(xún)時(shí)間為365秒,足足提高了4倍。

我們?cè)偻ㄟ^(guò)單條SQL語(yǔ)句來(lái)進(jìn)行比較。查詢(xún)語(yǔ)句如下:

SELECT * from userinfo Where id=‘123測(cè)試結(jié)果是:云計(jì)算查詢(xún)時(shí)間僅需0.164秒,而Oracle查詢(xún)時(shí)間為0.796秒,足足提高了5倍。

4.2 高容錯(cuò)性

與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)不同,云計(jì)算平臺(tái)節(jié)點(diǎn)出現(xiàn)宕機(jī)、系統(tǒng)崩潰和網(wǎng)絡(luò)故障都是屬于常態(tài)的,任何一個(gè)節(jié)點(diǎn)出現(xiàn)故障都不會(huì)中斷用戶(hù)的當(dāng)前操作,也不會(huì)影響數(shù)據(jù)的完整性。在整個(gè)節(jié)點(diǎn)正常的情況下,執(zhí)行select count(1) from userinfo,其結(jié)果為220639254 rows。

場(chǎng)景1:先手動(dòng)撥除主機(jī)名為hadoop_2的節(jié)點(diǎn)的網(wǎng)線(xiàn),再執(zhí)行上述SQL語(yǔ)句,結(jié)果為220639254 rows。場(chǎng)景2:查詢(xún)過(guò)程中撥掉節(jié)點(diǎn)網(wǎng)線(xiàn),同樣執(zhí)行上述SQL語(yǔ)句,結(jié)果為220639254 rows。

手動(dòng)撥除主機(jī)名為hadoop_2的節(jié)點(diǎn)的網(wǎng)線(xiàn),30秒后監(jiān)控報(bào)警提示。重新插上節(jié)點(diǎn)的網(wǎng)線(xiàn),30秒后監(jiān)控中顯示恢復(fù)正常

5 結(jié)論

本文基于Hadoop+HBase+Hive分布式技術(shù)搭建起云計(jì)算平臺(tái),云計(jì)算平臺(tái)所有節(jié)點(diǎn)都是采用廉價(jià)的普通PC機(jī)器。整個(gè)云計(jì)算平臺(tái)具有低存儲(chǔ)成本、高存儲(chǔ)效率、易于實(shí)現(xiàn)等現(xiàn)實(shí)優(yōu)點(diǎn)。在云計(jì)算平臺(tái)基礎(chǔ)之上,我們做了與Oracle數(shù)據(jù)庫(kù)查詢(xún)響應(yīng)速度比較和云計(jì)算平臺(tái)出現(xiàn)故障兩個(gè)實(shí)驗(yàn),結(jié)果表明,云計(jì)算平臺(tái)在海量數(shù)據(jù)下查詢(xún)性能優(yōu)于Oracle和出現(xiàn)故障能快速自我修復(fù)。

[參考文獻(xiàn)]

[1]張建勛,古志民,鄭超.云計(jì)算研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2010.27(2):429-433.

[2]朱珠.基于Hadoop的海量數(shù)據(jù)處理模型研究和應(yīng)用[D].北京:北京郵電大學(xué),2008:32-40.

[3]黃曉去.基于HDFS的云存儲(chǔ)服務(wù)系統(tǒng)研究[D].大連:大學(xué)海事大學(xué),2010:11-14.

猜你喜歡
云計(jì)算
志愿服務(wù)與“互聯(lián)網(wǎng)+”結(jié)合模式探究
云計(jì)算與虛擬化
基于云計(jì)算的移動(dòng)學(xué)習(xí)平臺(tái)的設(shè)計(jì)
實(shí)驗(yàn)云:理論教學(xué)與實(shí)驗(yàn)教學(xué)深度融合的助推器
云計(jì)算中的存儲(chǔ)虛擬化技術(shù)應(yīng)用
科技視界(2016年20期)2016-09-29 13:34:06
新巴尔虎右旗| 余庆县| 万州区| 渝北区| 芮城县| 鄂托克旗| 青铜峡市| 新野县| 长宁县| 革吉县| 历史| 大安市| 韶山市| 宜君县| 皮山县| 永和县| 衡水市| 平乡县| 新竹市| 西和县| 文昌市| 宜城市| 得荣县| 柳河县| 东光县| 织金县| 团风县| 滦平县| 尤溪县| 旬阳县| 辉南县| 岑溪市| 神池县| 湛江市| 灌云县| 胶州市| 乐至县| 平南县| 鄄城县| 奉贤区| 商都县|