日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Hadoop系统架构

發布時間:2024/6/21 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop系统架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Hadoop系統架構圖

Hadoop1.0與hadoop2.0架構對比圖

?

YARN架構:

ResourceManager

–處理客戶端請求 –啟動/監控ApplicationMaster –監控NodeManager –資源分配與調度

NodeManager

–單個節點上的資源管理 –處理來自ResourceManager的命令 –處理來自ApplicationMaster的命令

ApplicationMaster

–數據切分 –為應用程序申請資源,并分配給內部任務 –任務監控與容錯 YARN作業處理流程:

步驟1 用戶向YARN 中提交應用程序, 其中包括ApplicationMaster 程序、啟動ApplicationMaster 的命令、用戶程序等。

步驟2 ResourceManager 為該應用程序分配第一個Container, 并與對應的NodeManager 通信,要求它在這個Container 中啟動應用程序的ApplicationMaster。

步驟3 ApplicationMaster 首先向ResourceManager 注冊, 這樣用戶可以直接通過ResourceManage 查看應用程序的運行狀態,然后它將為各個任務申請資源,并監控它的運行狀態,直到運行結束,即重復步驟4~7。

步驟4 ApplicationMaster 采用輪詢的方式通過RPC 協議向ResourceManager 申請和領取資源。

步驟5 一旦ApplicationMaster 申請到資源后,便與對應的NodeManager 通信,要求它啟動任務。

步驟6 NodeManager 為任務設置好運行環境(包括環境變量、JAR 包、二進制程序

等)后,將任務啟動命令寫到一個腳本中,并通過運行該腳本啟動任務。

步驟7 各個任務通過某個RPC 協議向ApplicationMaster 匯報自己的狀態和進度,以讓ApplicationMaster 隨時掌握各個任務的運行狀態,從而可以在任務失敗時重新啟動任務。在應用程序運行過程中,用戶可隨時通過RPC 向ApplicationMaster 查詢應用程序的當

前運行狀態。

步驟8 應用程序運行完成后,ApplicationMaster 向ResourceManager 注銷并關閉自己。

?

運行在YARN上帶來的好處 :

–一個集群部署多個版本 –計算資源按需伸縮 –不同負載應用混搭,集群利用率高 –共享底層存儲,避免數據跨集群遷移 Hadoop 2.0? HA實現方式說明:

利用共享存儲在兩個NN間同步edits信息,如NFS等中高端存儲設備內部的各種RAID以及冗余硬件

DataNode同時向兩個NN匯報塊信息,讓Standby NN保持集群最新狀態

用FailoverController watchdog進程監視和控制NN進程,防止因? NN FullGC掛起無法發送heart beat

防止腦裂(brain-split):主備切換時由于切換不徹底等原因導致Slave誤以為出現兩個active master,通常采用Fencing機制:

-共享存儲fencing,確保只有一個NN可以寫入edits

-客戶端fencing,確保只有一個NN可以響應客戶端的請求

- DN fencing,確保只有一個NN可以向DN下發刪除等命令

?

HDFS文件讀取:

?

HDFS文件寫入:

?

MapReduce基本流程:

從MapReduce?自身的命名特點可以看出,?MapReduce?由兩個階段組成:Map?和Reduce。用戶只需編寫map()?和?reduce()?兩個函數,即可完成簡單的分布式程序的設計。

map()?函數以key/value?對作為輸入,產生另外一系列?key/value?對作為中間輸出寫入本地磁盤。?MapReduce?框架會自動將這些中間數據按照?key?值進行聚集,且key?值相同(用戶可設定聚集策略,默認情況下是對?key?值進行哈希取模)的數據被統一交給?reduce()?函數處理。

reduce()?函數以key?及對應的value?列表作為輸入,經合并?key?相同的value?值后,產生另外一系列?key/value?對作為最終輸出寫入HDFS

hello world --WordCount

用戶編寫完MapReduce 程序后,按照一定的規則指定程序的輸入和輸出目錄,并提交到Hadoop 集群中。作業在Hadoop 中的執行過程如圖所示。Hadoop 將輸入數據切分成若干個輸入分片(input split,后面簡稱split),并將每個split 交給一個Map Task 處理;Map Task 不斷地從對應的split 中解析出一個個key/value,并調用map() 函數處理,處理完之后根據Reduce Task 個數將結果分成若干個分片(partition)寫到本地磁盤;同時,每個Reduce Task 從每個Map Task 上讀取屬于自己的那個partition,然后使用基于排序的方法將key 相同的數據聚集在一起,調用reduce() 函數處理,并將結果輸出到文件中





?

??

?

轉載于:https://www.cnblogs.com/yangsy0915/p/4866995.html

總結

以上是生活随笔為你收集整理的Hadoop系统架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。