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

基于Hadoop的云平臺設計與實現

2016-09-26 11:28:56秦東霞韋家驥齊迎春
智能計算機與應用 2016年4期

秦東霞 韋家驥 齊迎春

摘 要:Hadoop是一個免費、可靠、高效、可擴展的開源云平臺,允許在分布式集群上處理大數據的軟件框架。本文以Hadoop為基礎,詳細介紹了虛擬機VMware、JDK、CentOS、Hadoop等技術。在偽分布式環境下搭建虛擬云平臺,經過測試,本系統能正常運行MapReduce化的分布式程序,本文還針對用戶權限、路徑配置和使用SSH服務程序等問題進行了詳細的闡述,為基于Hadoop的云平臺研究和應用程序開發提供了基礎。

關鍵詞:Hadoop;MapReduce;云平臺搭建

中圖分類號:TP393 文獻標識碼: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 引言

隨著互聯網時代信息與數據的飛速增長,科學、工程和商業等研究領域均需要處理大規模以及超大規模的數據, 對計算能力的需求已遠遠超出自身系統架構的承載運行限度。云計算是分布式計算、并行處理和網格計算的進一步發展,是基于互聯網的計算,能夠向各種互聯網應用提供基礎架構服務、硬件服務、軟件服務、平臺服務、存儲服務,這就意味著計算可以作為一種商品實現流通,不僅使用方便,費用也相對低廉[1]。此外,由于傳統并行編程模型應用的設計局限,客觀上需要一種容易學習、使用和部署的編程框架,而Hadoop就是一個優秀的大數據處理框架,性能表現高效穩定,非常適合選擇作為云計算的基礎架構。

1相關技術介紹

Hadoop是一個可運行在大量低配硬件設備上的分布式計算框架,并且能為其中的應用程序提供可靠的接口,構建擴展性好、可靠性強、具有良好可移植性的分布式系統[2]。Hadoop云平臺主要包括:HDFS分布式文件系統、MapReduce編程模型、HBase數據庫和Zookeeper分布式應用程序協調服務。這剛好與Google核心技術GFS、MapReduce和BigTable類似。

1.1分布式文件系統HDFS

Hadoop分布式文件系統可以將信息存儲在具有不同節點的設備中。具體由2部分組成,分別是:名稱節點NameNode和數據節點DataNode,NameNode相當于管理者,全面管理集群內的DataNode,當用戶發送請求信息后,NameNode會根據情況指定存儲到哪些DataNode上,而并不存儲真實的數據。原理工作流程如圖1所示。

HDFS在執行讀或寫的過程中,NameNode和DataNode通過心跳信息保存通信,確定DataNode不是宕機。如果發現DataNode停止了工作,就將該DataNode上的數據備份到其他節點中,并讀取該備份數據,這就是HDFS的容錯機制[3]。

1.2 MapReduce 編程模型

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

1.3 HBase數據庫

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

1.4 Zookeeper的工作機制

ZooKeeper是一個開放源碼的分布式應用程序協調服務,其中包含一個簡單的原語集。基于此,分布式應用程序可以實現同步服務,配置維護和命名服務等[6]。

Zookeeper是Hadoop的一個子項目。在分布式應用中,由于不能有效地使用鎖機制,以及基于消息的協調機制不適合在某些場合中使用,因此需要有一種可靠的、分布式的、可擴展的、可配置的協調機制來統一系統的狀態,Zookeeper應運而生。其完整工作機制如圖3所示。

2 集群搭建

云平臺的搭建是一個復雜的過程,包括虛擬機和操作系統的安裝,JDK的安裝,設置SSH免密碼登錄、Hadoop的安裝、Zookeeper的安裝、HBase的安裝、Hadoop文件系統格式化以及集群部件的啟動和關閉命令設置等步驟。

2.1 虛擬機、操作系統安裝

先安裝VMware10.0虛擬機,宿主機是Win8.1系統,由于Hadoop在類Unix系統上才能運行,為此則選擇了Linux系統和免費開源版的CentOS6.5版本。

2.2 JDK的安裝

安裝時,需要下載JDK1.7版本的包,解壓到指定目錄,同時修改properties文件配置系統環境變量,最后可以執行一次source功能,使得無需再重啟機器時環境變量就能生效。

2.3 設置SSH免密碼登錄

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

2.4 Hadoop的安裝

Hadoop的安裝分為以下幾個步驟:

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

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

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

4)修改hdfs-site.xml文件,對HDFS進行如下參數設置:文件副本的個數、塊大小及是否使用、強制權限等,同時將replication 默認值設置為3,如果不修改,datanode少于3臺就會報錯。

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

6)編輯masters文件,masters用于指定輔助名稱節點(SecondaryNameNode)的主機名或主機地址,這個文件只需在master主機上實現其編輯[8]。接著克隆另外3臺slave,克隆完畢之后,把每個slave關聯的主機名修改成相對應的slave,在此還要注意,/etc/下的hosts文件對應的Ip要改成各個節點的Ip地址,并重新生成各個節點的公匙和私匙,再利用scp命令把公匙分發給各個節點。

2.5 Zookeeper的安裝

下載Zookeeper-3.4并將其解壓到/usr/下,修改權限,動態設定/zookeeper/conf下的zoo.cfg配置文件。將Zookeeper目錄分別復制到各個slave中,創建/Hadoop/zookeeper目錄,并在該目錄下創建myid[6]。

2.6 HBase的安裝

下載HBase-0.94.8.tar.gz,并解壓到/usr/中,同時使用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節點—所有的slave刪除/HBase-0.94.8 /lib/Hadoop-core-1.0.3.ja,拷貝/Hadoop /lib /Hadoop-1.0.3-core.jar到/HBase/lib/。在此基礎上,把配置完成的HBase拷貝到其它節點。

2.7 Hadoop文件系統格式化

與普通文件系統一樣,HDFS文件系統需要首先格式化,創建元數據數據結構以后才能使用。命令如下:[Hadoop@Master Hadoop]$ bin/Hadoop namenode –format。

2.8 集群各個部件的啟動命令

Hadoop的啟動命令是/bin/start-all.sh,Zookeeper的啟動命令是zkServer.sh start。通過jps命令可以看到,此時多個進程QuorumPeermain;HBase的啟動命令是/start-HBase.sh;通過jps命令查看,此時又多了一個進程HMaster。

2.9 集群的關閉命令

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

3 集群測試

在本地創建2個文件file1.txt,file2.txt,2個文件分別寫入一段字符,在HDFS上創建輸入文件夾input,上傳file1.txt和file2.txt到input文件夾,復制Hadoop中的WordCount實例代碼,在eclipse中執行Run on Hadoop命令,運行結果如圖4所示。

4結束語

本文介紹了Hadoop的文件系統、編程模型、HBase的安裝、Zookeeper的安裝以及國內外研究應用情況,其中詳細設計了Hadoop集群的搭建過程,包括Hadoop文件系統HDFS、計算框架MapReduce編程、Hadoop生態系統相關組件的安裝、運用虛擬機技術在linux操作系統上搭建Hadoop集群等,旨在剖析云計算平臺構建可能用到的技術,為企業構建公有云和私有云提供技術參考。當然本系統也有一些不足之處,如集群功能簡單等,這些都需要在進化的學習和研究過程中不斷深化。

參考文獻

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

[2] 夏大文,榮卓波.Hadoop關鍵技術的研究與應用[J].計算機與現代化,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 架構的分布式計算和存儲技術及其應用[J].上海電力學院學報,2011,27(1):70-74.

[6] 崔杰,李陶深,蘭紅星.基于Hadoop 的海量數據存儲平臺設計與開發[J].計算機研究與發展,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] 周鋒,李旭偉.一種改進的MapReduce 并行編程模型[J].科協論壇(下半月),2009(2):65-66.

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

主站蜘蛛池模板: 国产在线精品人成导航| 男人的天堂久久精品激情| 日韩欧美在线观看| 国产91熟女高潮一区二区| 亚洲一级毛片免费看| 97人妻精品专区久久久久| 东京热一区二区三区无码视频| 一级毛片免费播放视频| 88国产经典欧美一区二区三区| 日韩国产综合精选| 97精品国产高清久久久久蜜芽| 国产人成网线在线播放va| 国产视频大全| 91最新精品视频发布页| 精品撒尿视频一区二区三区| 热久久国产| 国产AV无码专区亚洲A∨毛片| 综1合AV在线播放| 免费在线成人网| 91免费国产在线观看尤物| 伊人无码视屏| 毛片最新网址| 国产日韩欧美在线播放| 欧美综合激情| 欧美精品啪啪| 国产小视频免费观看| a亚洲视频| 亚洲国产精品日韩专区AV| 亚洲精品男人天堂| 国产正在播放| 伊人色综合久久天天| 国产丝袜无码精品| 亚洲欧美一区在线| 日韩资源站| 中文一区二区视频| 亚洲一区无码在线| 国产麻豆91网在线看| 亚洲国产成人久久77| 高清无码手机在线观看| 免费a级毛片18以上观看精品| 中文字幕无码制服中字| 中文字幕日韩久久综合影院| 丰满人妻中出白浆| 日韩在线影院| 久久精品66| 国产99视频在线| 亚洲欧美自拍中文| 亚洲综合九九| 国产黄在线免费观看| 人妻丰满熟妇av五码区| 亚洲欧美日韩高清综合678| 精品黑人一区二区三区| 三区在线视频| 亚洲无码在线午夜电影| 综合久久五月天| 国产午夜看片| 中文字幕欧美日韩| 全免费a级毛片免费看不卡| 国产第一页第二页| 亚洲福利一区二区三区| 自拍偷拍欧美| 国产九九精品视频| 亚洲成人网在线观看| 乱人伦99久久| 97se亚洲综合在线| 成人在线不卡视频| 日韩福利在线观看| 国产人在线成免费视频| 久久精品国产电影| 欧美a网站| 特级精品毛片免费观看| 88国产经典欧美一区二区三区| 亚洲一区网站| 老司国产精品视频91| 亚洲开心婷婷中文字幕| 国产精品久久久久久久久久久久| 久久综合丝袜长腿丝袜| 亚洲欧美一区二区三区麻豆| 日韩专区欧美| 在线观看亚洲精品福利片| 夜夜操狠狠操| 97在线国产视频|