Hadoop
Hadoop-HA思維導圖下載下傳連結
hdfs API
部署包
- 本地環境使用JAR包
- hadoop-2.6.5
- share
- doc(文檔)
- hadoop
- common
- hdfs
- httpdfs
- kms
- mapreduce
- tools
- yarn
- share
- hadoop-2.6.5
源碼包
- 綁定源碼
lib包整合
- **.jar
Winows環境
- 環境變量
- HADOOP_HOME
- F:/usr/hadoop-2.6.5
- Path
- F:/usr/hadoop-2.6.5/bin
- HADOOP_USER_NAME
- root
- HADOOP_HOME
- bin中替換
- hadoop.dll放置到System32檔案下
eclipse
Hadoop MapReduce V2
MR原語:map + reduce
- 輸入(格式化k,v)資料集map映射成一個中間資料集(k,v)reduce (sql)
- “相同”的key為一組,調用一次reduce方法,方法内疊代這一組資料進行計算 (類似的sql)
- 排序
- 比較
- 周遊
- 計算
- 各種次元花銷,音樂, 其他
MapReduce:MapTask & ReduceTask
Shuffler<洗牌>:架構内部實作機制
分布式計算節點資料流轉:連接配接MapTask與ReduceTask
計算架構MR(wordcount 單詞統計)
了解:
- Map:
- 讀懂資料
- 映射為KV模型
- 并行分布式
- 計算向資料移動
- Reduce:
- 資料全量/分量加工(partition/group)
- Reduce中可以包含不同的key
- 相同的Key彙聚到一個Reduce中
- 相同的Key調用一次reduce方法
- 排序實作key的彙聚
- K,V使用自定義資料類型
- 作為參數傳遞,節省開發成本,提高程式自由度
- Writable序列化:使能分布式程式資料互動
- Comparable比較器:實作具體排序(字典序,數值序等)
Hadoop 1.x – mr 1.x
運作架構:展現計算向資料移動
計算架構Mapper
計算架構Reducer
MRv1角色:
- JobTracker
- 核心,主,單點
- 排程所有的作業
- 監控整個叢集的資源負載
- TaskTracker
- 從,自身節點資源管理
- 和JobTracker心跳,彙報資源,擷取Task
- Client
- 作業為機關
- 規劃作業計算分布
- 送出作業資源到HDFS
- 最終送出作業到JobTracker
弊端:
- JobTracker:負載過重,單點故障
- 資源管理與計算排程強耦合,其他計算架構需要重複實作資源管理
- 不同架構對資源不能全局管理
Hadoop YARN (MRv2)
YARN:解耦資源與計算
- ResourceManager
- 主,核心
- 叢集節點資源管理
- NodeManager
- 與RM彙報資源
- 管理Container生命周期
- 計算架構中的角色都以Container表示
- Container:【節點NM,CPU,MEM,I/O大小,啟動指令】
- 預設NodeManager啟動線程監控Container大小,超出申請資源額度,kill
- 支援Linux核心的Cgroup
MR :
- MR-ApplicationMaster-Container
- 作業為機關,避免單點故障,負載到不同的節點
- 建立Task需要和RM申請資源(Container /MR 1024MB)
- Task-Container
Client:
- RM-Client:請求資源建立AM
- AM-Client:與AM互動
YARN
- YARN:Yet Another Resource Negotiator;
- Hadoop 2.0新引入的資源管理系統,直接從MRv1演化而來的;
- 核心思想:将MRv1中JobTracker的資源管理和任務排程兩個功能分開,分别由ResourceManager和ApplicationMaster程序實作
- ResourceManager:負責整個叢集的資源管理和排程
- ApplicationMaster:負責應用程式相關的事務,比如任務排程、任務監控和容錯等
- YARN的引入,使得多個計算架構可運作在一個叢集中
- 每個應用程式對應一個ApplicationMaster
- 目前多個計算架構可以運作在YARN上,比如MapReduce、Spark、Storm等
MapReduce On YARN
- MapReduce On YARN:MRv2
- 将MapReduce作業直接運作在YARN上,而不是由JobTracker和TaskTracker建構的MRv1系統中
- 基本功能子產品
- YARN:負責資源管理和排程
- MRAppMaster:負責任務切分、任務排程、任務監控和容錯等
- MapTask/ReduceTask:任務驅動引擎,與MRv1一緻
- 每個MapRaduce作業對應一個MRAppMaster
- MRAppMaster任務排程
- YARN将資源配置設定給MRAppMaster
- MRAppMaster進一步将資源配置設定給内部的任務
- MRAppMaster容錯
- 失敗後,由YARN重新啟動
- 任務失敗後,MRAppMaster重新申請資源
高可用搭建實操
hadoop
- mapred-site.xml
- mapreduce.framework.name yarn
- yarn-site.xml
- yarn.nodemanager.aux-services mapreduce_shuffle
- yarn.resourcemanager.cluster-id cluster1 - yarn.resourcemanager.ha.rm-ids rm1,rm2 - yarn.resourcemanager.hostname.rm1 node0003 yarn.resourcemanager.hostname.rm2 node0004 - yarn.resourcemanager.zk-address node0002:2181,node0003:2181,node0004:2181
啟動
- zkServer.sh start
- start-dfs.sh
- start-yarn.sh
- yarn-daemon.sh start resourcemanager
通路
- ss -nal
- http://192.168.137.133:8088/cluster