三大核心組件
1. HDFS
概念
是一個分布式文件系統(tǒng) 源于谷歌GFS論文的開源實現(xiàn)
設計目標
- 非常巨大的分布式文件系統(tǒng)
- 可以運行在非常廉價的硬件上
- 容易擴展 可以給用戶提供性能不錯的文件存儲服務
設計架構
1 Master(NameNode/NN) 帶 N個Slaves(DataNode/DN)
HDFS/YARN/HBase同樣如此1個文件會被拆分成多個Block 根據(jù)配置 存儲在多個DataNode上
blockSize:128M(可以設置)
例如: 130M ==> 2個Block: 128M 和 2M
NameNode:
1)負責客戶端請求的響應
2)負責元數(shù)據(jù)(文件的名稱啄踊、副本系數(shù)忧设、Block存放的DN)的管理
DataNode:
1)存儲用戶的文件對應的數(shù)據(jù)塊(Block)
2)要定期向NN發(fā)送心跳信息,匯報本身及其所有的block信息颠通,健康狀況
A typical deployment has a dedicated machine that runs only the NameNode software. Each of the other machines in the cluster runs one instance of the DataNode software.
The architecture does not preclude running multiple DataNodes on the same machine
but in a real deployment that is rarely the case.
NameNode + N個DataNode
建議:將NN和DN部署在不同的節(jié)點上
replication factor:副本系數(shù)址晕、副本因子
表示每個Block的副本數(shù)量
All blocks in a file except the last block are the same size
副本存放策略
Rack 表示機架 第一個副本默認保存在客戶端機器所在的節(jié)點上 其他如圖
2. 資源調(diào)度框架 YARN
概念
YARN:不同計算框架可以共享同一個HDFS集群上的數(shù)據(jù),享受整體的資源調(diào)度
XXX on YARN的好處:
與其他計算框架共享集群資源顿锰,按資源需要分配谨垃,進而提高集群資源的利用率
XXX: Spark/MapReduce/Storm/Flink
YARN架構:
1)ResourceManager: RM
整個集群同一時間提供服務的RM只有一個启搂,負責集群資源的統(tǒng)一管理和調(diào)度
處理客戶端的請求: 提交一個作業(yè)、殺死一個作業(yè)
監(jiān)控我們的NM刘陶,一旦某個NM掛了狐血,那么該NM上運行的任務需要告訴我們的AM來如何進行處理
NodeManager: NM
整個集群中有多個,負責自己本身節(jié)點資源管理和使用
定時向RM匯報本節(jié)點的資源使用情況
接收并處理來自RM的各種命令:啟動Container
處理來自AM的命令
單個節(jié)點的資源管理ApplicationMaster: AM
每個應用程序?qū)粋€:MR易核、Spark,負責應用程序的管理
為應用程序向RM申請資源(core浪默、memory)牡直,分配給內(nèi)部task
需要與NM通信:啟動/停止task,task是運行在container里面纳决,AM也是運行在container里面Container
封裝了CPU碰逸、Memory等資源的一個容器
是一個任務運行環(huán)境的抽象Client
提交作業(yè)
查詢作業(yè)的運行進度
殺死作業(yè)
YARN環(huán)境搭建
1)mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2)yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
- 啟動YARN相關的進程
sbin/start-yarn.sh
4)驗證
jps
ResourceManager
NodeManager
http://hadoop000:8088
5)停止YARN相關的進程
sbin/stop-yarn.sh
提交mr作業(yè)到YARN上運行:
/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar
hadoop jar
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 2 3