華為云計算 云知識 hadoop三大組件是什么
hadoop三大組件是什么

hadoop三大組件mapreduce分布式運算框架yarn任務(wù)調(diào)度平臺hdfs分布式文件系統(tǒng)

1.HDFS數(shù)據(jù)存放策略:分塊存儲+副本存放。

2.數(shù)據(jù)拓撲結(jié)構(gòu)(即 數(shù)據(jù)備份 ):默認存放3份,可以通過修改配置文件hdfs-site.xml修改備份數(shù)量,如果本機在集群中,第一份就會存放到本節(jié)點即本機上,如果不在集群中,就通過 負載均衡 存放到一個相應(yīng)的隨機節(jié)點上,第二份存放在同機柜的不同節(jié)點上,第三份存放在不同機柜的某個節(jié)點上。

3.數(shù)據(jù)查找:就近原則,現(xiàn)在本節(jié)點上查找,再從本機柜上查找,最后再去不同機柜上查找。

4.單點故障:Hadoop1中,一個集群只有NameNode,一旦NameNode宕機,整個集群就無法使用。

5.RPC:(Remote-Procedure-Call遠程過程調(diào)用)RPC是hadoop構(gòu)建的基礎(chǔ),一種協(xié)議,通過網(wǎng)絡(luò)從遠程計算機程序上請求服務(wù),采用client/sever客戶機/服務(wù)機模式,客戶端發(fā)動請求結(jié)果返回給客戶端而不是服務(wù)端。

6.安裝模式:NameNode啟動時會進入該模式進行檢測,檢查數(shù)據(jù)塊的完整性,處于該模式下的集群無法對HDFS進行操作,可以手動離開安全模式

hadoop dfsadmin-saftmode leave推出安全模式(enter進入安全模式)

7.負載均衡:讓DataNode處于均很狀態(tài),調(diào)整數(shù)據(jù)塊,DataNode的工作任務(wù)等,例如:現(xiàn)有一個任務(wù)要分配給從節(jié)點運行,但是有些slave內(nèi)存比較小,有些內(nèi)存比較大,又有些slave正在執(zhí)行別的任務(wù),有些事空閑的,為了讓各個slave既要飽和狀態(tài)又要性能最好,就需要調(diào)整;再例如:原本有8個子節(jié)點,現(xiàn)在擴充了2個子節(jié)點,原先的8個子節(jié)點都要數(shù)據(jù)存儲,也有相應(yīng)的任務(wù)需要執(zhí)行,而后加的2個子節(jié)點是空的,此時也需要負載均衡進行重新分配數(shù)據(jù)的存儲和任務(wù)的執(zhí)行。手動啟動該機制運行:

$HADOOP_HOME/sbin/start-balancer.sh

8.機架感知:機架之間的交互用機架感知來進行。機架之間的通信是通過一些交換機,路由器,光纖等進行通信的,需要通過機架感知來交互。不同機架之間相互訪問網(wǎng)絡(luò)耗費較大且延遲也較高,所以理想狀態(tài)下要查找數(shù)據(jù)剛剛好就在本機上,就不用耗費資源查找了,就需要通過機架感知。大型hadoop集群通過機架形式組織,而且同一機架上不同節(jié)點間的網(wǎng)絡(luò)狀況比不同機架之間的更為理想。

9.心跳機制:Hadoop是主從結(jié)構(gòu),即master/slave結(jié)構(gòu),master有NameNode,ResourceManager,SecondaryManager;slave有DataNode,NodeManager。master啟動時會啟動一個ipc服務(wù)(Inner-Process-Communication,通信間進程),等待slave連接。slave啟動時,會主動連接ipc服務(wù),并且每隔3秒連接一次master,這就是“心跳”。slave通過心跳機制匯報自己的狀態(tài),job完成情況等給master,同事master也通過心跳機制向slave下達命令,分配任務(wù)。同樣的,ResourceManager和NodeManager之間也通過心跳機制進行交互。如果master長時間沒有收到slave的心跳,那么master就認為該slave宕機了,如果slave宕機了,master就會把slave的數(shù)據(jù)通過負載均衡機制分配給其他slave上,正在執(zhí)行的任務(wù)也會被作廢,重新分配,重新執(zhí)行。

10.HA機制:High Availablity高可用性,H2中用于結(jié)局NameNode的單點故障問題。通過配置Active/Standby兩個NameNode解決熱備份問題。active NN對外提供服務(wù),standby NN只做備份,active NN將數(shù)據(jù)寫入共享存儲系統(tǒng)(NFS-NetWorkSystem,QJM,BooKeeper等)中而standby NN監(jiān)聽,一旦有新數(shù)據(jù)寫入standby NN會讀取這些數(shù)據(jù)寫入自己的內(nèi)存,保證和active NN保持同步,當active NN發(fā)生故障,standby NN可以立即頂替。每個節(jié)點上都有一個zookeeper。DN不斷向active NN和standby NN發(fā)送心跳,zookeeper會檢測2個NN,active NN和standby NN通過共享存儲系統(tǒng)保持一致,當zookeeper監(jiān)測到active NN出現(xiàn)故障時,會立即通過故障轉(zhuǎn)移控制器切換standby NN為激活狀態(tài)。

注意:SecondaryNameNode不是HA,只是階段性合并edits和fsimage,用以縮短NN啟動的時間,NN失效時SecondaryNN不能立即提供服務(wù),而且也不能保證數(shù)據(jù)和NN的一致性。