Hadoop介紹+環(huán)境搭建_第1頁
Hadoop介紹+環(huán)境搭建_第2頁
Hadoop介紹+環(huán)境搭建_第3頁
Hadoop介紹+環(huán)境搭建_第4頁
Hadoop介紹+環(huán)境搭建_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、云計算開發(fā)平臺 Hadoop系統(tǒng)錢能武030130733目錄目錄1.Hadoop概述2.Hadoop分布式文件系統(tǒng)(HDFS)簡介3.HDFS基本結構4.HDFS的文件操作5.HDFS的一些設計特點6. MapReduce分布式計算7. Hadoop優(yōu)勢注:參考書籍分布式系統(tǒng)及云計算概論 陸嘉恒 主編Hadoop實戰(zhàn) 陸嘉恒 著1.Hadoop概述 Hadoop是一個分布式系統(tǒng)基礎架構,是一個能夠對大量數(shù)據(jù)進行分布式處理的軟件框架,由Apache基金會開發(fā)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序,充分利用集群的的威力高速運算和存儲。Hadoop框架中最核心的設計就是:MapRe

2、duce和HDFS。 Hadoop程序目前大多運行在Linux系統(tǒng)上,windows上運行需要安裝其他插件(Cygwin)。3.Hadoop分布式文件系統(tǒng)(HDFS)簡介 Hadoop也跟其他云計算項目有共同點和目標:實現(xiàn)海量數(shù)據(jù)的計算。而進行海量計算需要一個穩(wěn)定的、安全的數(shù)據(jù)容器,于是就有了Hadoop分布式文件系統(tǒng)(HDFS)。 Hadoop 分布式文件系統(tǒng)是具有高可靠性和高可擴展性的分布式文件系統(tǒng),能夠提供海量的文件存儲能力。它的開發(fā)和實現(xiàn)遵循了Google 文件系統(tǒng)(GFS)的核心原理,受到了業(yè)界極大關注,并已被廣泛應用。4.HDFS基本結構HDFS基本儲存單元Block(數(shù)據(jù)塊) 一

3、個文件有可能包含多個塊,一個塊有可以包含多個文件,由文件的大小和塊大小的參數(shù)決定。HDFS結構特點HDFS是一個大規(guī)模的分布式文件系統(tǒng),采用master/slave架構。一個HDFS集群是有一個Namenode和一定數(shù)目的Datanode組成。Namenode是一個中心服務器,負責管理文件系統(tǒng)的名字空間和客戶端對文件的訪問。Datanode在集群中一般是一個節(jié)點一個,負責管理它所在節(jié)點上的存儲。 HDFS:Namenode 和 Datanode 從內部看,一個文件其實被分成一個或多個數(shù)據(jù)塊,這些塊存儲在一組Datanode上。Namenode執(zhí)行文件系統(tǒng)的名字空間操作,比如打開、關閉、重命名文

4、件或目錄。它也負責確定數(shù)據(jù)塊到具體Datanode節(jié)點的映射。Datanode負責處理文件系統(tǒng)客戶端的讀寫請求。在Namenode的統(tǒng)一調度下進行數(shù)據(jù)塊的創(chuàng)建、刪除和復制。HDFS把節(jié)點分為兩類:Namenode和Datanode。 Namenode是唯一的,程序與之通信,然后從Datanode上存取文件。 從外部看,HDFS就像一個分級的文件系統(tǒng),用戶能夠以文件的形式在上面創(chuàng)建、刪除、移動或重命名文件等。HDFS集群框架圖HDFS:文件讀取和寫入基本過程寫入文件: Client向NameNode發(fā)起文件寫入的請求 NameNode根據(jù)文件大小和文件塊配置情況返回給Client它所管理部分Da

5、taNode的信息 Client將文件劃分為多個文件塊,根據(jù)DataNode的地址信息按順序寫入到每一個DataNode塊中讀取文件: Client向NameNode發(fā)起文件讀取的請求 NameNode返回文件存儲的DataNode的信息 Client讀取文件信息5.HDFS的文件操作HDFS:文件讀取流程圖NameNodenamenodeDataNodedatanodeDataNodedatanodeDataNodedatanodeclient nodeHDFSclientDistributedFileSystemFSDataInputStream1:open2:get block loca

6、tions3:read4:read5:read6:closeclient JVMHDFS:文件寫入流程圖NameNodenamenodeDataNodedatanodeDataNodedatanodeDataNodedatanodeclient nodeHDFSclientDistributedFileSystemFSDataInputStream1:create2:create3:write4:write packet6:closeclient JVM5:ack packet7:complete4:4:5:5:Pipeline of datanodesHDFS中的文件都是一次性寫入的,并且嚴

7、格要求在任何時候只能有一個寫入者。HDFS:數(shù)據(jù)復制 HDFS被設計成能夠在一個大集群中跨機器可靠地存儲超大文件。它將每個文件存儲成一系列的數(shù)據(jù)塊,除了最后一個,所有的數(shù)據(jù)塊都是同樣大小的。 為了容錯,文件的所有數(shù)據(jù)塊都要備份有副本。每個文件的數(shù)據(jù)塊大小和副本數(shù)目都是可配置的。應用程序可以指定某個文件的副本系數(shù)。HDFS:數(shù)據(jù)復制數(shù)據(jù)塊(Block)復制: NameNode發(fā)現(xiàn)部分文件的Block數(shù)不符合最小復制數(shù)或者部分DataNode失效 通知DataNode相互復制Block DataNode開始直接相互復制 Namenode全權管理數(shù)據(jù)塊的復制,它周期性地從集群中的每個Datanode

8、接收心跳信號和塊狀態(tài)報告。接收到心跳信號意味著該Datanode節(jié)點工作正常。塊狀態(tài)報告包含了一個該Datanode上所有數(shù)據(jù)塊的列表。問題:節(jié)點失效是常態(tài)問題:節(jié)點失效是常態(tài)! DataNode中的磁盤掛了怎么辦? DataNode所在機器掛了怎么辦? NameNode掛了怎么辦? Client掛了怎么辦?DataNode的磁盤掛了怎么辦? DataNode正常服務 壞掉的磁盤上的數(shù)據(jù)盡快通知NameNodeDataNode所在機器掛了怎么辦? 問:NameNode怎么知道DataNode掛掉了? 答:datanode每3秒鐘向namenode發(fā)送心跳,如果10分鐘datanode沒有向na

9、menode發(fā)送心跳,則namenode認為該datanode已經dead,namenode將取出該datanode上對應的block,對其進行復制。NameNode掛了怎么辦? 持久化元數(shù)據(jù) 操作日志(edit log) 記錄文件創(chuàng)建,刪除,修改文件屬性等操作 Fsimage (HDFS元數(shù)據(jù)鏡像文件) 包含完整的命名空間 File - Block的映射關系 文件的屬性(ACL, quota, 修改時間等) NameNode掛了怎么辦? Secondary NameNode 將NameNode的fsimage (HDFS元數(shù)據(jù)鏡像文件)與edit log(HDFS文件改動日志)從Nameno

10、de復制到臨時目錄 將fsimage同edit log合并,并產生新的fsimage (減少啟動時間) 將產生的新的fsimage上傳給NameNode 清除NameNode中的edit log注: Secondary NameNode僅僅對NameNode中元數(shù)據(jù)提供冷備方案Secondary NameNode輔助NN處理FsImage和事務日志1、從NN拷貝FsImage和事務日志到臨時目錄2、合并FsImage和事務日志生成一個新的FsImage3、上傳新的FsImage到NN上4、NN更新FsImage并清理原來的事務日志Client掛了怎么辦? 問: Client 所在機器掛了有什么

11、影響? 答:一致性問題Create file,get lease Renew leaseCrashLease recovery Hadoop MapReduce是一種簡單易用的軟件框架,可以開發(fā)出運行在由上千個商用機器組成的大型機器上,并以一種可靠容錯的方式并行處理的數(shù)據(jù)集(太字節(jié)級的數(shù)據(jù)) Map-Reduce 計算模型的實現(xiàn) 大規(guī)模數(shù)據(jù)處理的框架 所有數(shù)據(jù)作為KEY-VALUE對進行處理 嵌入用戶數(shù)據(jù)處理程序 簡單計算模型,但可以處理很多不同類型的問題 日志數(shù)據(jù)處理 搜索引擎6、MapReduce分布式計算Hadoop Map-Reduce對于任務處理的兩步:對于任務處理的兩步: 一個Ma

12、pReduce作業(yè)(Jop)通常會把輸入集切分成若干獨立的數(shù)據(jù)塊,由Map任務(Task)以完全并行的方式處理它們 MapReduce框架會先排序map任務的輸出,然后把結果輸入到reduce任務 通常計算結點和存儲結點是同一個結點,也就是說MapReduce框架和HDFS是運行在相同的結點集上。 MapReduce框架是由一個單獨運行在主結點的JobTracker和運行在每個集群從結點的TaskTracker(任務跟蹤)共同構成。Map/Reduce 數(shù)據(jù)流程 Input Split (可缺省,由系統(tǒng)完成) Recordreader (可缺省,由系統(tǒng)完成) Mapper Combiner (

13、可缺省) Shuffler(partitionner)(可缺省,由系統(tǒng)完成) Sort (可缺省,由系統(tǒng)完成) Reducer (可缺?。?OutputMapReduce處理MapReduce物理上處理過程MapReduceMapReduce的的key排序邏輯排序邏輯 MapReduce本身Key的數(shù)據(jù)類型的排序邏輯其實就是依賴于Hadoop本身的繼承與WritableComparable的基本數(shù)據(jù)類型和其他類型(相關類型可參考Hadoop權威指南第二版的90頁)的compareTo方法的定義。Key排序的規(guī)則:1.如果調用jobconf的setOutputKeyComparatorClass

14、()設置parator.class2.否則,使用key已經登記的comparator3.否則,實現(xiàn)接口WritableComparable的compareTo()函數(shù)來操作注:可以修改compareTo來實現(xiàn)自己所需的比較算法MapReduce的二次排序的二次排序Hadoop的MapReduce模型支持基于key的排序,即在一次MapReduce之后,結果都是按照key的大小排序的。但是在很多應用情況下,我們需要對映射在一個key下的value集合進行排序,即“secondary sort”。 在hadoop the definate guide的P227的“secondary sort”章節(jié)

15、中,以為例,在map階段按照year來分發(fā)temperature,在reduce階段按照同一year對應的temperature大小排序。 MapReduceMapReduce舉例:WordCount的Map 過程WordCount的Reduce 過程舉例:事例MapReduce過程Hadoop優(yōu)勢: 可擴展。不論是存儲的可擴展還是計算的可擴展都是Hadoop的設計根本。 經濟。它在通常可用的計算機集簇間分配數(shù)據(jù)和處理,這些集簇可以被計入數(shù)以千計的節(jié)點當中 高效。通過分配數(shù)據(jù),Hadoop能夠在存放數(shù)據(jù)的節(jié)點之間平行的處理它們,因此其處理速度非???。 可信。Hadoop能夠自動保存數(shù)據(jù)的多份副

16、本,并且能夠自動地將失敗的任務重新分配謝謝!Hadoop環(huán)境搭建 硬件環(huán)境 實驗共使用三臺PC機,一臺機器用作NameNode,另兩臺用作DateNode。 軟件環(huán)境 軟件統(tǒng)一安裝在虛擬機系統(tǒng)VMware上, Linux系統(tǒng)采用Ubuntu,jdk使用jdk1.6.0 版,Hadoop使用hadoop-0.20.2版本。 1.安裝環(huán)境2.準備工作 虛擬機VMware的安裝 下載安裝軟件并分別在3臺機器上安裝。由于3臺機器的某盤剩余空間都較大,統(tǒng)一將VMware安裝在某盤上,分配磁盤空間時統(tǒng)一分配為10G。 Ubuntu的安裝 新建虛擬機,加載Linux系統(tǒng)Ubuntu的iso鏡像文件,并在VM

17、ware環(huán)境下安裝Ubuntu 系統(tǒng)。 Ubuntu簡單設置 對Ubuntu進行簡單的網(wǎng)絡設置,使其接入Internet,可使用其自帶的語言支持工具將其環(huán)境漢化。 JDK、SSH的安裝 使用Ubuntu自帶的“新立得”軟件管理工具包,可以搜索、下載并安裝JDK、SSH。準備工作(續(xù)) Hadoop的安裝 在Ubuntu中,通過網(wǎng)址/dyn/closer.cgi/hadoop/core下載hadoop-0.20.2.tar.gz,解壓到/usr/local/hadoop文件夾。準備工作(續(xù))3.配置工作 配置JDK環(huán)境變量 以超級用戶身份打開environment文件

18、,在其中添加兩個環(huán)境變量:CLASSPATH及JAVA_HOME并設置路徑值。 配置SSH 在每臺機器上新建一個超級用戶,取名均為hadoop,并建立SSH Key用來遠程登錄。配置工作(續(xù)) 配置Hadoop 配置$HADOOP_HOME/conf/hadoop-env.sh,導入JAVA_HOME環(huán)境變量值。 配置$HADOOP_HOME/conf/core-site.xml,在其中指定默認文件系統(tǒng)名,默認系統(tǒng)臨時目錄等。 配置$HADOOP_HOME/conf/mapred-site.xml,指定tracker的默認路徑端口。配置工作(續(xù)) 格式化、啟動 使用-format命令格式化NameNode; 使用start-all.sh命令啟動所有的Hadoop進程,包括:namenode,datanode, jobtracker,tasktrack 等四項進程。 通過jps命令查看進程是否啟動成功。進一步工作:進一步工作: 完成例子的測試工作; 熟悉Linux命令; 熟悉Hadoop工作原理,加深對MapReduce

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論