999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Hadoop的云平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

2016-09-26 11:28:56秦東霞韋家驥齊迎春

秦東霞 韋家驥 齊迎春

摘 要:Hadoop是一個(gè)免費(fèi)、可靠、高效、可擴(kuò)展的開(kāi)源云平臺(tái),允許在分布式集群上處理大數(shù)據(jù)的軟件框架。本文以Hadoop為基礎(chǔ),詳細(xì)介紹了虛擬機(jī)VMware、JDK、CentOS、Hadoop等技術(shù)。在偽分布式環(huán)境下搭建虛擬云平臺(tái),經(jīng)過(guò)測(cè)試,本系統(tǒng)能正常運(yùn)行MapReduce化的分布式程序,本文還針對(duì)用戶權(quán)限、路徑配置和使用SSH服務(wù)程序等問(wèn)題進(jìn)行了詳細(xì)的闡述,為基于Hadoop的云平臺(tái)研究和應(yīng)用程序開(kāi)發(fā)提供了基礎(chǔ)。

關(guān)鍵詞:Hadoop;MapReduce;云平臺(tái)搭建

中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A

Abstract:Hadoop is a free, reliable, efficient and scalable open source cloud platform, which allows the software framework to deal with large data on a distributed cluster. Based on Hadoop, this paper introduces the technology of CentOS, JDK, Hadoop and VMware in virtual machine. Virtual cloud platform is built in the pseudo distributed environment. After testing, the system can run the MapReduce oriented distributed program. This paper also provides a basis for the research of the SSH based cloud platform and application program based on Hadoop.

Key words:Hadoop;MapReduce;Construct the cloud computing platform

0 引言

隨著互聯(lián)網(wǎng)時(shí)代信息與數(shù)據(jù)的飛速增長(zhǎng),科學(xué)、工程和商業(yè)等研究領(lǐng)域均需要處理大規(guī)模以及超大規(guī)模的數(shù)據(jù), 對(duì)計(jì)算能力的需求已遠(yuǎn)遠(yuǎn)超出自身系統(tǒng)架構(gòu)的承載運(yùn)行限度。云計(jì)算是分布式計(jì)算、并行處理和網(wǎng)格計(jì)算的進(jìn)一步發(fā)展,是基于互聯(lián)網(wǎng)的計(jì)算,能夠向各種互聯(lián)網(wǎng)應(yīng)用提供基礎(chǔ)架構(gòu)服務(wù)、硬件服務(wù)、軟件服務(wù)、平臺(tái)服務(wù)、存儲(chǔ)服務(wù),這就意味著計(jì)算可以作為一種商品實(shí)現(xiàn)流通,不僅使用方便,費(fèi)用也相對(duì)低廉[1]。此外,由于傳統(tǒng)并行編程模型應(yīng)用的設(shè)計(jì)局限,客觀上需要一種容易學(xué)習(xí)、使用和部署的編程框架,而Hadoop就是一個(gè)優(yōu)秀的大數(shù)據(jù)處理框架,性能表現(xiàn)高效穩(wěn)定,非常適合選擇作為云計(jì)算的基礎(chǔ)架構(gòu)。

1相關(guān)技術(shù)介紹

Hadoop是一個(gè)可運(yùn)行在大量低配硬件設(shè)備上的分布式計(jì)算框架,并且能為其中的應(yīng)用程序提供可靠的接口,構(gòu)建擴(kuò)展性好、可靠性強(qiáng)、具有良好可移植性的分布式系統(tǒng)[2]。Hadoop云平臺(tái)主要包括:HDFS分布式文件系統(tǒng)、MapReduce編程模型、HBase數(shù)據(jù)庫(kù)和Zookeeper分布式應(yīng)用程序協(xié)調(diào)服務(wù)。這剛好與Google核心技術(shù)GFS、MapReduce和BigTable類(lèi)似。

1.1分布式文件系統(tǒng)HDFS

Hadoop分布式文件系統(tǒng)可以將信息存儲(chǔ)在具有不同節(jié)點(diǎn)的設(shè)備中。具體由2部分組成,分別是:名稱節(jié)點(diǎn)NameNode和數(shù)據(jù)節(jié)點(diǎn)DataNode,NameNode相當(dāng)于管理者,全面管理集群內(nèi)的DataNode,當(dāng)用戶發(fā)送請(qǐng)求信息后,NameNode會(huì)根據(jù)情況指定存儲(chǔ)到哪些DataNode上,而并不存儲(chǔ)真實(shí)的數(shù)據(jù)。原理工作流程如圖1所示。

HDFS在執(zhí)行讀或?qū)懙倪^(guò)程中,NameNode和DataNode通過(guò)心跳信息保存通信,確定DataNode不是宕機(jī)。如果發(fā)現(xiàn)DataNode停止了工作,就將該DataNode上的數(shù)據(jù)備份到其他節(jié)點(diǎn)中,并讀取該備份數(shù)據(jù),這就是HDFS的容錯(cuò)機(jī)制[3]。

1.2 MapReduce 編程模型

MapReduce提供了一個(gè)并行處理大數(shù)據(jù)集的編程模型,由Map和Reduce這2個(gè)階段組成。只需編寫(xiě)map 和reduce 2個(gè)函數(shù),即可完成簡(jiǎn)單的分布式程序的計(jì)算。map函數(shù)以key/value 對(duì)作為輸入,產(chǎn)生另外一系列key/value 對(duì)作為中間輸出寫(xiě)入本地磁盤(pán)[4]。MapReduce框架會(huì)自動(dòng)將這些中間數(shù)據(jù)按照鍵值進(jìn)行聚集操作,并且鍵值相同(可設(shè)定聚集方法,默認(rèn)是對(duì)鍵值進(jìn)行哈希取模)的數(shù)據(jù)將統(tǒng)一交送reduce函數(shù)進(jìn)行轉(zhuǎn)換處理。reduce函數(shù)以key和其對(duì)應(yīng)的value列表作為輸入,經(jīng)合并value相同的值后,產(chǎn)生另外一系列key/value 對(duì)作為最終輸出寫(xiě)入文件系統(tǒng),如圖2所示。

1.3 HBase數(shù)據(jù)庫(kù)

HBase建立在HDFS上,介于NoSQL和RDBMS之間,僅能通過(guò)主鍵(row key)和主鍵的range來(lái)檢索數(shù)據(jù),理論上能夠處理單行事務(wù),但可通過(guò)Hive支持來(lái)實(shí)現(xiàn)多表join等復(fù)雜操作,主要用來(lái)存儲(chǔ)非結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù)。與Hadoop一樣,HBase主要依靠橫向擴(kuò)展,通過(guò)不斷增加相對(duì)廉價(jià)的商用服務(wù)器,來(lái)提升和改善計(jì)算和存儲(chǔ)能力[5]。HBase以表的形式存儲(chǔ)數(shù)據(jù),Hbase表可以有上億行,上百萬(wàn)列,面向列(族)的存儲(chǔ)和權(quán)限。表有行和列組成,列劃分為若干個(gè)列族(row family)控制,對(duì)于為空(null)的列,并不占用存儲(chǔ)空間。

1.4 Zookeeper的工作機(jī)制

ZooKeeper是一個(gè)開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),其中包含一個(gè)簡(jiǎn)單的原語(yǔ)集。基于此,分布式應(yīng)用程序可以實(shí)現(xiàn)同步服務(wù),配置維護(hù)和命名服務(wù)等[6]。

Zookeeper是Hadoop的一個(gè)子項(xiàng)目。在分布式應(yīng)用中,由于不能有效地使用鎖機(jī)制,以及基于消息的協(xié)調(diào)機(jī)制不適合在某些場(chǎng)合中使用,因此需要有一種可靠的、分布式的、可擴(kuò)展的、可配置的協(xié)調(diào)機(jī)制來(lái)統(tǒng)一系統(tǒng)的狀態(tài),Zookeeper應(yīng)運(yùn)而生。其完整工作機(jī)制如圖3所示。

2 集群搭建

云平臺(tái)的搭建是一個(gè)復(fù)雜的過(guò)程,包括虛擬機(jī)和操作系統(tǒng)的安裝,JDK的安裝,設(shè)置SSH免密碼登錄、Hadoop的安裝、Zookeeper的安裝、HBase的安裝、Hadoop文件系統(tǒng)格式化以及集群部件的啟動(dòng)和關(guān)閉命令設(shè)置等步驟。

2.1 虛擬機(jī)、操作系統(tǒng)安裝

先安裝VMware10.0虛擬機(jī),宿主機(jī)是Win8.1系統(tǒng),由于Hadoop在類(lèi)Unix系統(tǒng)上才能運(yùn)行,為此則選擇了Linux系統(tǒng)和免費(fèi)開(kāi)源版的CentOS6.5版本。

2.2 JDK的安裝

安裝時(shí),需要下載JDK1.7版本的包,解壓到指定目錄,同時(shí)修改properties文件配置系統(tǒng)環(huán)境變量,最后可以執(zhí)行一次source功能,使得無(wú)需再重啟機(jī)器時(shí)環(huán)境變量就能生效。

2.3 設(shè)置SSH免密碼登錄

添加一個(gè)命名為Hadoop用戶,集群運(yùn)行和通信均使用該用戶。如果不進(jìn)行SSH免密碼登錄,每次通信都要輸入密碼,這將是一個(gè)災(zāi)難性的操作[7]。而后修改hosts的文件,把集群IP地址和主機(jī)名對(duì)應(yīng)起來(lái),切換到Hadoop用戶,執(zhí)行ssh-keygen生成公鑰與私鑰,此處先不相互復(fù)制公私,虛擬機(jī)設(shè)有一克隆命令,把相同的信息都可以克隆出來(lái),為此需要預(yù)先完成Hadoop的安裝。

2.4 Hadoop的安裝

Hadoop的安裝分為以下幾個(gè)步驟:

1)首先配置Master機(jī)器,下載Hadoop的安裝包,解壓到/usr/目錄下,文件夾重命名為Hadoop。

2)修改配置文件,首先修改Hadoop-env.sh,添加Hadoop需要的JDK信息,配置JAVA_HOME環(huán)境變量、為Hadoop的JVM指定某特征選項(xiàng)、指定日志文件所在的目錄路徑以及master和slave文件的位置等。

3)修改core-site.xml,定義系統(tǒng)級(jí)別的參數(shù),可作用于全部進(jìn)程及客戶端,Hadoop.tmp.dir屬性用于定義Hadoop的臨時(shí)目錄,其默認(rèn)為/tmp/Hadoop-${username}。HDFS進(jìn)程的許多目錄默認(rèn)均在此目錄中。需要注意的是,要保證運(yùn)行Hadoop進(jìn)程的用戶對(duì)其具有全部訪問(wèn)權(quán)限。

4)修改hdfs-site.xml文件,對(duì)HDFS進(jìn)行如下參數(shù)設(shè)置:文件副本的個(gè)數(shù)、塊大小及是否使用、強(qiáng)制權(quán)限等,同時(shí)將replication 默認(rèn)值設(shè)置為3,如果不修改,datanode少于3臺(tái)就會(huì)報(bào)錯(cuò)。

5)修改mapred-site.xml 配置jobTracker的端口。

6)編輯masters文件,masters用于指定輔助名稱節(jié)點(diǎn)(SecondaryNameNode)的主機(jī)名或主機(jī)地址,這個(gè)文件只需在master主機(jī)上實(shí)現(xiàn)其編輯[8]。接著克隆另外3臺(tái)slave,克隆完畢之后,把每個(gè)slave關(guān)聯(lián)的主機(jī)名修改成相對(duì)應(yīng)的slave,在此還要注意,/etc/下的hosts文件對(duì)應(yīng)的Ip要改成各個(gè)節(jié)點(diǎn)的Ip地址,并重新生成各個(gè)節(jié)點(diǎn)的公匙和私匙,再利用scp命令把公匙分發(fā)給各個(gè)節(jié)點(diǎn)。

2.5 Zookeeper的安裝

下載Zookeeper-3.4并將其解壓到/usr/下,修改權(quán)限,動(dòng)態(tài)設(shè)定/zookeeper/conf下的zoo.cfg配置文件。將Zookeeper目錄分別復(fù)制到各個(gè)slave中,創(chuàng)建/Hadoop/zookeeper目錄,并在該目錄下創(chuàng)建myid[6]。

2.6 HBase的安裝

下載HBase-0.94.8.tar.gz,并解壓到/usr/中,同時(shí)使用mv修改其目錄名為HBase,修改conf/HBase-env.sh,添加HBase所需要的jdk信息,Hadoop的配置文件路徑和Zookeeper的信息[6]。修改HBase-site.xml,把/usr /Hadoop /conf/ hdfs-site.xml文件拷貝至HBase的conf文件夾下,把/usr/zookeeper/conf/zoo.cfg拷貝至/usr /Hadoop /conf/文件夾下,在conf /regionservers中添加所有的datanode節(jié)點(diǎn)—所有的slave刪除/HBase-0.94.8 /lib/Hadoop-core-1.0.3.ja,拷貝/Hadoop /lib /Hadoop-1.0.3-core.jar到/HBase/lib/。在此基礎(chǔ)上,把配置完成的HBase拷貝到其它節(jié)點(diǎn)。

2.7 Hadoop文件系統(tǒng)格式化

與普通文件系統(tǒng)一樣,HDFS文件系統(tǒng)需要首先格式化,創(chuàng)建元數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)以后才能使用。命令如下:[Hadoop@Master Hadoop]$ bin/Hadoop namenode –format。

2.8 集群各個(gè)部件的啟動(dòng)命令

Hadoop的啟動(dòng)命令是/bin/start-all.sh,Zookeeper的啟動(dòng)命令是zkServer.sh start。通過(guò)jps命令可以看到,此時(shí)多個(gè)進(jìn)程QuorumPeermain;HBase的啟動(dòng)命令是/start-HBase.sh;通過(guò)jps命令查看,此時(shí)又多了一個(gè)進(jìn)程HMaster。

2.9 集群的關(guān)閉命令

關(guān)閉集群是有順序的,關(guān)閉HBase后,再關(guān)閉Zookeeper,而后則關(guān)閉Hadoop。具體地,關(guān)閉HBase時(shí),進(jìn)入bin目錄下,執(zhí)行HBase-stop.sh處理關(guān)閉Zookeeper;進(jìn)入bin目錄下,執(zhí)行zkServer.sh stop操作,關(guān)閉Hadoop;進(jìn)入bin目錄下,執(zhí)行stop-all.sh再測(cè)試一次jps,發(fā)現(xiàn)只有jps一個(gè)進(jìn)程,這樣集群就成功實(shí)現(xiàn)了關(guān)閉[9]。

3 集群測(cè)試

在本地創(chuàng)建2個(gè)文件file1.txt,file2.txt,2個(gè)文件分別寫(xiě)入一段字符,在HDFS上創(chuàng)建輸入文件夾input,上傳file1.txt和file2.txt到input文件夾,復(fù)制Hadoop中的WordCount實(shí)例代碼,在eclipse中執(zhí)行Run on Hadoop命令,運(yùn)行結(jié)果如圖4所示。

4結(jié)束語(yǔ)

本文介紹了Hadoop的文件系統(tǒng)、編程模型、HBase的安裝、Zookeeper的安裝以及國(guó)內(nèi)外研究應(yīng)用情況,其中詳細(xì)設(shè)計(jì)了Hadoop集群的搭建過(guò)程,包括Hadoop文件系統(tǒng)HDFS、計(jì)算框架MapReduce編程、Hadoop生態(tài)系統(tǒng)相關(guān)組件的安裝、運(yùn)用虛擬機(jī)技術(shù)在linux操作系統(tǒng)上搭建Hadoop集群等,旨在剖析云計(jì)算平臺(tái)構(gòu)建可能用到的技術(shù),為企業(yè)構(gòu)建公有云和私有云提供技術(shù)參考。當(dāng)然本系統(tǒng)也有一些不足之處,如集群功能簡(jiǎn)單等,這些都需要在進(jìn)化的學(xué)習(xí)和研究過(guò)程中不斷深化。

參考文獻(xiàn)

[1] Konstantin Shvachko, Hairong Kuang, Sanjay Radia, et al.The Hadoop Distributed File System[Z].Sunnyvale,California USA,IEEE 2010: 1-10.

[2] 夏大文,榮卓波.Hadoop關(guān)鍵技術(shù)的研究與應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2013(5):138-141,148.

[3]NAMJOSHI J, GUPTE A. Service oriented architecture for cloud based travel reservation software as a service[C]//Proc Of IEEE International Conference on Cloud Computing. New York: IEEEComputer Society Press, 2009: 147-150.

[4] DEAN J, GHEMAWAT S. MapReduce: Simplified data processing on large clusters[C]//Proc. 6Th Symp on Operating System Design and Implementation. New York:ACM Press, 2004: 137-150.

[5] 田秀霞,周耀君,畢忠勤,等.基于Hadoop 架構(gòu)的分布式計(jì)算和存儲(chǔ)技術(shù)及其應(yīng)用[J].上海電力學(xué)院學(xué)報(bào),2011,27(1):70-74.

[6] 崔杰,李陶深,蘭紅星.基于Hadoop 的海量數(shù)據(jù)存儲(chǔ)平臺(tái)設(shè)計(jì)與開(kāi)發(fā)[J].計(jì)算機(jī)研究與發(fā)展,2012,49(Suppl.):12-18.

[7] TAYLOR R C. An overview of the Hadoop /MapReduce /HBase framework and its current applications in bioinformatics [C]//BMC Bioinformatics. Washington: BMC Bioinformatics, 2010:51-57

[8] 周鋒,李旭偉.一種改進(jìn)的MapReduce 并行編程模型[J].科協(xié)論壇(下半月),2009(2):65-66.

[9] 胡光民,周亮,柯立新.基于Hadoop的網(wǎng)絡(luò)日志分析系統(tǒng)研究[J].電腦知識(shí)與技術(shù),2010,6(22):6163-6164,6185.

主站蜘蛛池模板: 麻豆精品国产自产在线| 欧美午夜视频| 国产福利免费观看| 亚洲天堂.com| 91色国产在线| 婷婷丁香在线观看| 在线a视频免费观看| 久久99国产乱子伦精品免| 国产精品成人免费视频99| 日韩无码视频播放| 丁香婷婷综合激情| 亚洲av综合网| jizz在线观看| 日韩免费成人| 就去色综合| 亚洲国产综合精品一区| 黄色在线不卡| 久久精品最新免费国产成人| 亚洲国产日韩在线成人蜜芽| 狠狠躁天天躁夜夜躁婷婷| 日韩123欧美字幕| 色噜噜狠狠狠综合曰曰曰| 亚洲欧洲综合| 中文国产成人精品久久| 欧美成人一级| 久久综合九色综合97婷婷| AV在线天堂进入| 国模在线视频一区二区三区| 丰满人妻久久中文字幕| 国产在线拍偷自揄拍精品| 欧美在线综合视频| 韩国自拍偷自拍亚洲精品| 欧美在线精品怡红院| 精品99在线观看| 91在线激情在线观看| 亚洲无线视频| 一级毛片免费播放视频| 日本人妻一区二区三区不卡影院 | 午夜欧美理论2019理论| 亚洲精品日产精品乱码不卡| 中文字幕波多野不卡一区| 一区二区三区在线不卡免费| 欧美国产成人在线| 666精品国产精品亚洲| 午夜性爽视频男人的天堂| 亚洲首页在线观看| 亚洲大学生视频在线播放| 亚洲无码高清免费视频亚洲| 久久超级碰| 欧美激情二区三区| 国产男人的天堂| 日韩经典精品无码一区二区| 国产成人做受免费视频| 国产女人18水真多毛片18精品| 青青操视频免费观看| 成人免费午间影院在线观看| 国产日韩欧美视频| 狼友视频国产精品首页| 99精品免费欧美成人小视频| 国产精品爆乳99久久| 国产人成在线观看| 国产欧美日韩综合一区在线播放| 在线高清亚洲精品二区| 国产精品一区不卡| 亚洲欧洲日韩久久狠狠爱| 欧美日韩理论| 制服丝袜亚洲| 国产精品女同一区三区五区| 久久香蕉国产线看观看式| 欧美国产日产一区二区| 亚洲欧美不卡中文字幕| 国产好痛疼轻点好爽的视频| 在线毛片免费| 男女猛烈无遮挡午夜视频| 日本高清免费不卡视频| 亚洲天堂自拍| 日韩免费成人| 日韩欧美亚洲国产成人综合| 三上悠亚精品二区在线观看| 日韩午夜片| 91探花国产综合在线精品| 99热国产这里只有精品9九|