




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
云計算與大數據第2版分布式文件系統及并行計算框架9.1分布式文件系統HDFS9.2并行計算框架MapReduce實驗HDFS的文件操作命令及API編程實驗Eclipse下的MapReduce編程重點:HDFS結構及文件訪問MapReduce原理實驗難點:實驗本章重點及難點9.1分布式文件系統HDFS9.1.1HDFS的結構及文件訪問1、體系結構9.1分布式文件系統HDFS9.1.1HDFS的結構及文件訪問NameNode管理者文件系統的Namespace。它通過Namespace鏡像文件(NamespaceImage)和操作日志文件(EditLog)管理文件系統樹(FileSystemtree)以及文件樹中所有的文件和文件夾的元數據(Metadata)。Namenode記錄著每個文件中各個塊所在的數據節點的位置信息,但是它并不持久化存儲這些信息,因為這些信息會在系統啟動時從數據節點重建。9.1分布式文件系統HDFS9.1.1HDFS的結構及文件訪問DataNode是文件系統的工作節點,它們根據客戶端或者是NameNode的調度來存儲和檢索數據,并且定期向Namenode發送它們所存儲的塊(block)的列表。集群中的每個服務器都運行一個DataNode后臺程序,這個后臺程序負責把HDFS數據塊讀寫到本地的文件系統。當需要通過客戶端讀/寫某個數據時,先由NameNode告訴客戶端去哪個DataNode進行具體的讀/寫操作,然后,客戶端直接與這個DataNode服務器上的后臺程序進行通信,并且對相關的數據塊進行讀/寫操作。9.1分布式文件系統HDFS9.1.1HDFS的結構及文件訪問HDFS的基本文件訪問過程是:1)首先,用戶的應用程序通過HDFS的客戶端程序將文件名發送至NameNode。2)NameNode接收到文件名之后,在HDFS目錄中檢索文件名對應的數據塊,再根據數據塊信息找到保存數據塊的DataNode地址,將這些地址回送給客戶端。3)客戶端接收到這些DataNode地址之后,與這些DataNode并行地進行數據傳輸操作,同時將操作結果的相關日志(比如是否成功,修改后的數據塊信息等)提交到NameNode。9.1分布式文件系統HDFS9.1.1HDFS的結構及文件訪問HDFS的基本文件訪問過程是:1)首先,用戶的應用程序通過HDFS的客戶端程序將文件名發送至NameNode。2)NameNode接收到文件名之后,在HDFS目錄中檢索文件名對應的數據塊,再根據數據塊信息找到保存數據塊的DataNode地址,將這些地址回送給客戶端。3)客戶端接收到這些DataNode地址之后,與這些DataNode并行地進行數據傳輸操作,同時將操作結果的相關日志(比如是否成功,修改后的數據塊信息等)提交到NameNode。9.1分布式文件系統HDFS9.1.1HDFS的結構及文件訪問2、相關概念1)數據塊Block為了提高硬盤的效率,文件系統中最小的數據讀寫單位不是字節,而是一個更大的概念——數據塊。HDFS數據塊的默認大小是64MB,而且在不少實際部署中,HDFS的數據塊甚至會被設置成128MB甚至更多。將數據塊設置成這么大的原因是減少尋址開銷的時間。9.1分布式文件系統HDFS9.1.1HDFS的結構及文件訪問2、相關概念2)命名空間HDFS中的文件命名遵循了傳統的“目錄/子目錄/文件”格式。通過命令行或者是API可以創建目錄,并且將文件保存在目錄中;也可以對文件進行創建、刪除、重命名操作。命名空間由NameNode管理,所有對命名空間的改動(包括創建、刪除、重命名,或是改變屬性等,但是不包括打開、讀取、寫入數據)都會被HDFS記錄下來。HDFS允許用戶配置文件在HDFS上保存的副本數量,保存的副本數稱作“副本因子”(ReplicationFactor),這個信息也保存在NameNode中。9.1分布式文件系統HDFS9.1.1HDFS的結構及文件訪問2、相關概念3)通信協議作為一個分布式文件系統,HDFS中大部分的數據都是通過網絡進行傳輸的。為了保證傳輸的可靠性,HDFS采用TCP協議作為底層的支撐協議。應用可以向NameNode主動發起TCP連接。應用和NameNode交互的協議稱為Client協議,NameNode和DataNode交互的協議稱為DataNode協議。而用戶和DataNode的交互是通過發起遠程過程調用(RemoteProcedureCall,RPC)、并由NameNode響應來完成的。另外,NameNode不會主動發起遠程過程調用請求。9.1分布式文件系統HDFS9.1.1HDFS的結構及文件訪問2、相關概念3)通信協議作為一個分布式文件系統,HDFS中大部分的數據都是通過網絡進行傳輸的。為了保證傳輸的可靠性,HDFS采用TCP協議作為底層的支撐協議。應用可以向NameNode主動發起TCP連接。應用和NameNode交互的協議稱為Client協議,NameNode和DataNode交互的協議稱為DataNode協議。而用戶和DataNode的交互是通過發起遠程過程調用(RemoteProcedureCall,RPC)、并由NameNode響應來完成的。另外,NameNode不會主動發起遠程過程調用請求。9.1分布式文件系統HDFS9.1.1HDFS的結構及文件訪問2、相關概念4)客戶端嚴格來講,客戶端并不能算是HDFS的一部分,但是客戶端是用戶和HDFS通信最常見也是最方便的渠道,而且部署的HDFS都會提供客戶端。客戶端為用戶提供了一種可以通過與Linux中的Shell類似的方式訪問HDFS的數據。客戶端支持最常見的操作如(打開、讀取、寫入等);而且命令的格式也和Shell十分相似,大大方便了程序員和管理員的操作。9.1分布式文件系統HDFS9.1.2HDFS的數據管理HDFS通過三個重要角色:NameNode、DataNode、Client來進行文件系統的管理。1)文件寫入①Client向NameNode發起文件寫入的請求。
②NameNode根據文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。
③Client將文件劃分為多個Block,根據DataNode的地址信息,按順序寫入到每一個DataNode塊中。
9.1分布式文件系統HDFS9.1.2HDFS的數據管理2)文件讀取①Client向NameNode發起文件讀取的請求。②NameNode返回文件存儲的DataNode的信息。
③Client讀取文件信息。
3)文件塊(Block)復制①NameNode發現部分文件的block不符合最小復制數的要求或者部分DataNode失效。
②通知DataNode相互復制Block。
③DataNode開始直接相互復制。
9.1分布式文件系統HDFS9.1.2HDFS的數據管理寫過程:9.1分布式文件系統HDFS9.1.2HDFS的數據管理讀過程:9.1分布式文件系統HDFS9.1.2HDFS的數據管理讀過程:9.1分布式文件系統HDFS9.1.2HDFS的數據管理①Block的放置:一個Block會有三份備份。②心跳檢測:用心跳檢測DataNode的健康狀況,如果發現問題就采取數據備份的方式來保證數據的安全性。
③
數據復制:使用HDFS的balancer命令配置一個Threshold來平衡每一個DataNode磁盤利用率。④
數據校驗。采用CRC32作數據交驗。⑤
單個NameNode。如果單個NameNode失敗,任務處理信息將會記錄在本地文件系統和遠端的文件系統中。
9.1分布式文件系統HDFS9.1.2HDFS的數據管理⑥
數據管道性的寫入。當客戶端要寫入文件到DataNode上,首先會讀取一個Block然后寫到第一個DataNode上,然后由第一個DataNode傳遞到備份的DataNode上,一直到所有需要寫入這個Block的DataNode都成功寫入,客戶端才會開始寫下一個Block。⑦
安全模式。分布式文件系統啟動時會首先進入安全模式,當分布式文件系統處于安全模式時,文件系統中的內容不允許修改和刪除,直到安全模式結束。安全模式主要是為了在系統啟動的時候檢查各個DataNode上數據塊的有效性,同時根據策略進行必要的復制或者刪除部分數據塊。9.1分布式文件系統HDFS9.1.2HDFS的數據管理⑥
數據管道性的寫入。當客戶端要寫入文件到DataNode上,首先會讀取一個Block然后寫到第一個DataNode上,然后由第一個DataNode傳遞到備份的DataNode上,一直到所有需要寫入這個Block的DataNode都成功寫入,客戶端才會開始寫下一個Block。⑦
安全模式。分布式文件系統啟動時會首先進入安全模式,當分布式文件系統處于安全模式時,文件系統中的內容不允許修改和刪除,直到安全模式結束。安全模式主要是為了在系統啟動的時候檢查各個DataNode上數據塊的有效性,同時根據策略進行必要的復制或者刪除部分數據塊。9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口1、HDFS的啟動與關閉啟動輸入:sbin/start-dfs.sh9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口1、HDFS的啟動與關閉關閉輸入:sbin/stop-dfs.sh9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作命令基本格式:hadoopfs-cmd<args>9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs-ls//列出hdfs文件系統根目錄下的目錄和文件hadoopfs-ls-R//列出hdfs文件系統所有的目錄和文件9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs-put<localfile><hdfsfile>//hdfsfile的父目錄一定要存在,否則命令不會執行hadoopfs-put<localfileordir>...<hdfsdir>//hdfsdir一定要存在,否則命令不會執行hadoopfs-put-<hdsffile>//從鍵盤讀取輸入到hdfsfile中,按Ctrl+D結束輸入,hdfsfile不能存在,否則命令不會執行9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs-moveFromLocal<localsrc>...<hdfsdst>//與put相類似,命令執行后源文件localsrc被刪除,也可以從從鍵盤讀取輸入到hdfsfile中hadoopfs-copyFromLocal<localsrc>...<hdfsdst>//與put相類似,也可以從從鍵盤讀取輸入到hdfsfile中9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs-get<hdfsfile><localfileordir>//localfile不能和hdfsfile名字不能相同,否則會提示文件已存在,沒有重名的文件會復制到本地hadoopfs-get<hdfsfileordir>...<localdir>//拷貝多個文件或目錄到本地時,本地要為文件夾路徑
注意:如果用戶不是root,local路徑要為用戶文件夾下的路徑,否則會出現權限問題,9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs-copyToLocal<localsrc>...<hdfsdst>//與get相類似hadoopfs-rm<hdfsfile>...hadoopfs-rm-r<hdfsdir>...//每次可以刪除多個文件或目錄9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs
-mkdir
<hdfspath>//只能一級一級的建目錄,父目錄不存在的話使用這個命令會報錯hadoopfs
-mkdir
-p<hdfspath>//所創建的目錄如果父目錄不存在就創建該父目錄9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs-getmerge<hdfsdir><local
file>//將hdfs指定目錄下所有文件排序后合并到local指定的文件中,文件不存在時會自動創建,文件存在時會覆蓋里面的內容hadoopfs-getmerge-nl<hdfsdir><local
file>//加上nl后,合并到localfile中的hdfs文件之間會空出一行9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs-cp<hdfsfile><hdfsfile>//目標文件不能存在,否則命令不能執行,相當于給文件重命名并保存,源文件還存在
hadoopfs-cp<hdfsfileordir>...<hdfsdir>//目標文件夾要存在,否則命令不能執行9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs-mv<hdfsfile><hdfsfile>//目標文件不能存在,否則命令不能執行,相當于給文件重命名并保存,源文件不存在hadoopfs-mv<hdfsfileordir>...<hdfsdir>//源路徑有多個時,目標路徑必須為目錄,且必須存在。
注意:跨文件系統的移動(local到hdfs或者反過來)都是不允許的9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs
-count<hdfspath
>//統計hdfs對應路徑下的目錄個數,文件個數,文件總計大小
//顯示為目錄個數,文件個數,文件總計大小,輸入路徑9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadoopfs-text
<hdsffile>//將文本文件或某些格式的非文本文件通過文本格式輸出hadoopfs
-setrep-R3
<hdfspath
>//改變一個文件在hdfs中的副本個數//上述命令中數字3為所設置的副本個數//-R選項可以對一個人目錄下的所有目錄+文件遞歸執行改變副本個數的操作
9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hdoopfs
-stat[format]<hdfspath
>//返回對應路徑的狀態信息
[format]可選參數有:%b(文件大小),%o(Block大小),%n(文件名),%r(副本個數),%y(最后一次修改日期和時間)hadoopfs-tail<hdfsfile>//在標準輸出中顯示文件末尾的1KB數據
9.2分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hdoopfs
-stat[format]<hdfspath
>//返回對應路徑的狀態信息
[format]可選參數有:%b(文件大小),%o(Block大小),%n(文件名),%r(副本個數),%y(最后一次修改日期和時間)hadoopfs-tail<hdfsfile>//在標準輸出中顯示文件末尾的1KB數據
9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hadooparchive-archiveNamename.har-p<hdfsparentdir><src>*<hdfsdst>//命令中參數name:壓縮文件名,自己任意取;//<hdfsparentdir>:壓縮文件所在的父目錄;//<src>:要壓縮的文件名;//<hdfsdst>:壓縮文件存放路徑
*示例:hadooparchive-archiveNamehadoop.har-p/user1.txt2.txt/des
9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hdfs
balancer//如果管理員發現某些DataNode保存數據過多,某些DataNode保存數據相對較少,可以使用上述命令手動啟動內部的均衡過程distcp用來在兩個HDFS之間拷貝數據
9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口2、文件操作hdfsdfsadmin-help//管理員可以通過dfsadmin管理HDFS,用法可以通過上述命令查看hdfsdfsadmin-report//顯示文件系統的基本數據hdfsdfsadmin-safemode<enter|leave|get|wait>//enter:進入安全模式;//leave:離開安全模式;//get:獲知是否開啟安全模式;//wait:等待離開安全模式
9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口3、編程接口在Hadoop中用作文件操作的主類位于org.apache.hadoop.fs軟件包中,包括常見的open、read、write、close等操作。Hadoop文件的API起點是FileSystem類,這是一個與文件系統交互的抽象類,我們通過調用factory的方法FileSystem.get(Configurationconf)來取得所需的FileSystem實例。
9.1分布式文件系統HDFS9.1.3HDFS操作命令與編程接口3、編程接口在Hadoop中用作文件操作的主類位于org.apache.hadoop.fs軟件包中,包括常見的open、read、write、close等操作。Hadoop文件的API起點是FileSystem類,這是一個與文件系統交互的抽象類,我們通過調用factory的方法FileSystem.get(Configurationconf)來取得所需的FileSystem實例。
9.2并行計算框架MapReduce9.2.1MapReduce原理MapReduce采用"分而治之"的思想,把對大規模數據集的操作,分發給一個主節點管理下的各個分節點共同完成,然后通過整合各個節點的中間結果,得到最終結果。簡單地說,MapReduce就是"任務的分解與結果的匯總"。在Hadoop中,用于執行MapReduce任務的機器角色有兩個:一個是JobTracker;另一個是TaskTracker,JobTracker是用于調度工作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024四川蓬溪文旅投資開發有限公司副總經理和工作人員4人筆試參考題庫附帶答案詳解
- 九年級道德與法治上冊 第一單元 我們真的長大了 第三課 伸出你的手 第1框 在關愛中成長教學設計 人民版
- 全國電子工業版初中信息技術第四冊第1單元1.4活動3《預測高溫時盆栽的用水量》教學設計
- 五年級上冊道德與法治教學設計-13《探訪古代文明》(第二課時) 人教部編版(五四制)
- 人教版數學六年級下第二單元 第5課時 解決問題教案
- 初中物理北師大版八年級上冊三 學生實驗:探究物質的一種屬性-密度教案
- 七年級道德與法治上冊 第四單元 生命的思考 第十課 綻放生命之花 第一框 感受生命的意義教學設計 新人教版
- 工程項目管理培訓
- 七年級地理上冊 1.3地圖教學設計3 (新版)新人教版
- 2024云南廣南供銷集團有限公司招聘2人筆試參考題庫附帶答案詳解
- (四調)武漢市2025屆高中畢業生四月調研考試 數學試卷(含答案詳解)
- 2024年中國礦產資源集團大數據有限公司招聘筆試真題
- 2025年河南機電職業學院單招職業技能測試題庫及參考答案
- 第11課《山地回憶》課件-2024-2025學年統編版語文七年級下冊
- 現代化復卷機的結構原理和工藝控制
- 中國對外貿易促進(共40頁).ppt
- 畢業論文風景園林工程與技術研究進展
- 中考復習專題—應用題
- 微機ATX電源電路的工作原理與維修
- 外貿中英文商業發票
- 2019JGJ196塔式起重機安裝使用拆卸安全技術規程
評論
0/150
提交評論