




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、云計算開發平臺 Hadoop系統錢能武030130733目錄目錄1.Hadoop概述2.Hadoop分布式文件系統(HDFS)簡介3.HDFS基本結構4.HDFS的文件操作5.HDFS的一些設計特點6. MapReduce分布式計算7. Hadoop優勢注:參考書籍分布式系統及云計算概論 陸嘉恒 主編Hadoop實戰 陸嘉恒 著1.Hadoop概述 Hadoop是一個分布式系統基礎架構,是一個能夠對大量數據進行分布式處理的軟件框架,由Apache基金會開發。用戶可以在不了解分布式底層細節的情況下,開發分布式程序,充分利用集群的的威力高速運算和存儲。Hadoop框架中最核心的設計就是:MapRe
2、duce和HDFS。 Hadoop程序目前大多運行在Linux系統上,windows上運行需要安裝其他插件(Cygwin)。3.Hadoop分布式文件系統(HDFS)簡介 Hadoop也跟其他云計算項目有共同點和目標:實現海量數據的計算。而進行海量計算需要一個穩定的、安全的數據容器,于是就有了Hadoop分布式文件系統(HDFS)。 Hadoop 分布式文件系統是具有高可靠性和高可擴展性的分布式文件系統,能夠提供海量的文件存儲能力。它的開發和實現遵循了Google 文件系統(GFS)的核心原理,受到了業界極大關注,并已被廣泛應用。4.HDFS基本結構HDFS基本儲存單元Block(數據塊) 一
3、個文件有可能包含多個塊,一個塊有可以包含多個文件,由文件的大小和塊大小的參數決定。HDFS結構特點HDFS是一個大規模的分布式文件系統,采用master/slave架構。一個HDFS集群是有一個Namenode和一定數目的Datanode組成。Namenode是一個中心服務器,負責管理文件系統的名字空間和客戶端對文件的訪問。Datanode在集群中一般是一個節點一個,負責管理它所在節點上的存儲。 HDFS:Namenode 和 Datanode 從內部看,一個文件其實被分成一個或多個數據塊,這些塊存儲在一組Datanode上。Namenode執行文件系統的名字空間操作,比如打開、關閉、重命名文
4、件或目錄。它也負責確定數據塊到具體Datanode節點的映射。Datanode負責處理文件系統客戶端的讀寫請求。在Namenode的統一調度下進行數據塊的創建、刪除和復制。HDFS把節點分為兩類:Namenode和Datanode。 Namenode是唯一的,程序與之通信,然后從Datanode上存取文件。 從外部看,HDFS就像一個分級的文件系統,用戶能夠以文件的形式在上面創建、刪除、移動或重命名文件等。HDFS集群框架圖HDFS:文件讀取和寫入基本過程寫入文件: Client向NameNode發起文件寫入的請求 NameNode根據文件大小和文件塊配置情況返回給Client它所管理部分Da
5、taNode的信息 Client將文件劃分為多個文件塊,根據DataNode的地址信息按順序寫入到每一個DataNode塊中讀取文件: Client向NameNode發起文件讀取的請求 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:數據復制 HDFS被設計成能夠在一個大集群中跨機器可靠地存儲超大文件。它將每個文件存儲成一系列的數據塊,除了最后一個,所有的數據塊都是同樣大小的。 為了容錯,文件的所有數據塊都要備份有副本。每個文件的數據塊大小和副本數目都是可配置的。應用程序可以指定某個文件的副本系數。HDFS:數據復制數據塊(Block)復制: NameNode發現部分文件的Block數不符合最小復制數或者部分DataNode失效 通知DataNode相互復制Block DataNode開始直接相互復制 Namenode全權管理數據塊的復制,它周期性地從集群中的每個Datanode
8、接收心跳信號和塊狀態報告。接收到心跳信號意味著該Datanode節點工作正常。塊狀態報告包含了一個該Datanode上所有數據塊的列表。問題:節點失效是常態問題:節點失效是常態! DataNode中的磁盤掛了怎么辦? DataNode所在機器掛了怎么辦? NameNode掛了怎么辦? Client掛了怎么辦?DataNode的磁盤掛了怎么辦? DataNode正常服務 壞掉的磁盤上的數據盡快通知NameNodeDataNode所在機器掛了怎么辦? 問:NameNode怎么知道DataNode掛掉了? 答:datanode每3秒鐘向namenode發送心跳,如果10分鐘datanode沒有向na
9、menode發送心跳,則namenode認為該datanode已經dead,namenode將取出該datanode上對應的block,對其進行復制。NameNode掛了怎么辦? 持久化元數據 操作日志(edit log) 記錄文件創建,刪除,修改文件屬性等操作 Fsimage (HDFS元數據鏡像文件) 包含完整的命名空間 File - Block的映射關系 文件的屬性(ACL, quota, 修改時間等) NameNode掛了怎么辦? Secondary NameNode 將NameNode的fsimage (HDFS元數據鏡像文件)與edit log(HDFS文件改動日志)從Nameno
10、de復制到臨時目錄 將fsimage同edit log合并,并產生新的fsimage (減少啟動時間) 將產生的新的fsimage上傳給NameNode 清除NameNode中的edit log注: Secondary NameNode僅僅對NameNode中元數據提供冷備方案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是一種簡單易用的軟件框架,可以開發出運行在由上千個商用機器組成的大型機器上,并以一種可靠容錯的方式并行處理的數據集(太字節級的數據) Map-Reduce 計算模型的實現 大規模數據處理的框架 所有數據作為KEY-VALUE對進行處理 嵌入用戶數據處理程序 簡單計算模型,但可以處理很多不同類型的問題 日志數據處理 搜索引擎6、MapReduce分布式計算Hadoop Map-Reduce對于任務處理的兩步:對于任務處理的兩步: 一個Ma
12、pReduce作業(Jop)通常會把輸入集切分成若干獨立的數據塊,由Map任務(Task)以完全并行的方式處理它們 MapReduce框架會先排序map任務的輸出,然后把結果輸入到reduce任務 通常計算結點和存儲結點是同一個結點,也就是說MapReduce框架和HDFS是運行在相同的結點集上。 MapReduce框架是由一個單獨運行在主結點的JobTracker和運行在每個集群從結點的TaskTracker(任務跟蹤)共同構成。Map/Reduce 數據流程 Input Split (可缺省,由系統完成) Recordreader (可缺省,由系統完成) Mapper Combiner (
13、可缺省) Shuffler(partitionner)(可缺省,由系統完成) Sort (可缺省,由系統完成) Reducer (可缺省) OutputMapReduce處理MapReduce物理上處理過程MapReduceMapReduce的的key排序邏輯排序邏輯 MapReduce本身Key的數據類型的排序邏輯其實就是依賴于Hadoop本身的繼承與WritableComparable的基本數據類型和其他類型(相關類型可參考Hadoop權威指南第二版的90頁)的compareTo方法的定義。Key排序的規則:1.如果調用jobconf的setOutputKeyComparatorClass
14、()設置parator.class2.否則,使用key已經登記的comparator3.否則,實現接口WritableComparable的compareTo()函數來操作注:可以修改compareTo來實現自己所需的比較算法MapReduce的二次排序的二次排序Hadoop的MapReduce模型支持基于key的排序,即在一次MapReduce之后,結果都是按照key的大小排序的。但是在很多應用情況下,我們需要對映射在一個key下的value集合進行排序,即“secondary sort”。 在hadoop the definate guide的P227的“secondary sort”章節
15、中,以為例,在map階段按照year來分發temperature,在reduce階段按照同一year對應的temperature大小排序。 MapReduceMapReduce舉例:WordCount的Map 過程WordCount的Reduce 過程舉例:事例MapReduce過程Hadoop優勢: 可擴展。不論是存儲的可擴展還是計算的可擴展都是Hadoop的設計根本。 經濟。它在通常可用的計算機集簇間分配數據和處理,這些集簇可以被計入數以千計的節點當中 高效。通過分配數據,Hadoop能夠在存放數據的節點之間平行的處理它們,因此其處理速度非常快。 可信。Hadoop能夠自動保存數據的多份副
16、本,并且能夠自動地將失敗的任務重新分配謝謝!Hadoop環境搭建 硬件環境 實驗共使用三臺PC機,一臺機器用作NameNode,另兩臺用作DateNode。 軟件環境 軟件統一安裝在虛擬機系統VMware上, Linux系統采用Ubuntu,jdk使用jdk1.6.0 版,Hadoop使用hadoop-0.20.2版本。 1.安裝環境2.準備工作 虛擬機VMware的安裝 下載安裝軟件并分別在3臺機器上安裝。由于3臺機器的某盤剩余空間都較大,統一將VMware安裝在某盤上,分配磁盤空間時統一分配為10G。 Ubuntu的安裝 新建虛擬機,加載Linux系統Ubuntu的iso鏡像文件,并在VM
17、ware環境下安裝Ubuntu 系統。 Ubuntu簡單設置 對Ubuntu進行簡單的網絡設置,使其接入Internet,可使用其自帶的語言支持工具將其環境漢化。 JDK、SSH的安裝 使用Ubuntu自帶的“新立得”軟件管理工具包,可以搜索、下載并安裝JDK、SSH。準備工作(續) Hadoop的安裝 在Ubuntu中,通過網址/dyn/closer.cgi/hadoop/core下載hadoop-0.20.2.tar.gz,解壓到/usr/local/hadoop文件夾。準備工作(續)3.配置工作 配置JDK環境變量 以超級用戶身份打開environment文件
18、,在其中添加兩個環境變量:CLASSPATH及JAVA_HOME并設置路徑值。 配置SSH 在每臺機器上新建一個超級用戶,取名均為hadoop,并建立SSH Key用來遠程登錄。配置工作(續) 配置Hadoop 配置$HADOOP_HOME/conf/hadoop-env.sh,導入JAVA_HOME環境變量值。 配置$HADOOP_HOME/conf/core-site.xml,在其中指定默認文件系統名,默認系統臨時目錄等。 配置$HADOOP_HOME/conf/mapred-site.xml,指定tracker的默認路徑端口。配置工作(續) 格式化、啟動 使用-format命令格式化NameNode; 使用start-all.sh命令啟動所有的Hadoop進程,包括:namenode,datanode, jobtracker,tasktrack 等四項進程。 通過jps命令查看進程是否啟動成功。進一步工作:進一步工作: 完成例子的測試工作; 熟悉Linux命令; 熟悉Hadoop工作原理,加深對MapReduce
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 譯碼智力測試題及答案
- 能源保險考試題及答案
- 激光工程師考證應試指南試題及答案
- 綠化工程質量驗收合同
- 九年級上班主任學期目標工作計劃
- 九年級數學教學計劃的評估與反饋機制
- 二年級語文閱讀與寫作能力提升計劃
- 2025學年度小學語文教研組跨學科合作計劃
- 高三英語補課計劃
- 文娛中心弱電設施施工方案
- 建筑施工現場安全培訓課件
- 浴室租賃協議(3篇)
- pvc雨水管施工方案
- 建筑施工升降機安裝使用拆卸安全技術規程
- 資產評估常用數據與參數手冊
- 國家開放大學《中國現代文學專題》形考任務1-4參考答案
- 2023年某路橋工程有限公司生產安全事故綜合應急預案
- 中石油職稱俄語
- 棱柱棱錐棱臺的表面積和體積課件-高一下學期數學人教A版
- 2023年中國郵政的招聘筆試參考題庫附帶答案詳解
- 考研經驗分享課件
評論
0/150
提交評論