docker之hadoop HA高可用配置

2021-07-30 06:50:04 字數 3661 閱讀 4547

搭建hadoop的高可用性,hadoop版本為2.6.5。hadoop的高可用配置有兩種方法,以下是我選擇配置的quorum journal manager (qjm)的方法。

quorum的高可用需要啟動奇數個(3、5、7等)journalnodes節點進行日誌的處理,活動namenode節點負責進行寫日誌,而備份namenode節點則負責從journalnodes節點中讀取資料,從而實現主備份之間的資料同步。配置journalnode節點後還不能進行自動故障轉移,只能手動進行故障轉移,想做到自動故障轉移,還需要配置zookeeper。

除了journalnode需要奇數外,zookeeper的服務也需要奇數個,我這選擇配置的是3個,3個journalnode,3個zookeeper服務。所以本次搭建的集群為6個節點即啟動6個docker容器,第乙個namenode節點(ip:172.17.0.2),第二個namenode節點(ip:172.17.0.3),以及乙個resourcemanager節點(ip:172.17.0.4),同時分別在這三個節點上啟動journalnode和zookeeper服務;另外三個為datanode節點。 在上一次《docker之hadoop普通集群搭建(五》搭建的docker映象基礎上,主要修改以下hadoop配置檔案引數:

server.3=172.17.0.4:2888:3888在zoo.cfg中datadir配置的路徑下建立myid檔案,myid檔案內儲存對應的id,比如上面配置server.1=172.17.0.2:2888:3888,則需要在172.17.0.2主機上建立的myid檔案儲存1,其它節點類似建立myid檔案即可。 通過以上配置就基本完成了高可用性配置了,接下來就是啟動了。

hadoop的啟動這裡經常會使用到start-dfs.sh命令,其中start-yarn.sh命令啟動resourcemanager和nodemanager程序。其它剩下的程序都通過start-dfs.sh來進行,如果某些程序沒法啟動成功,則肯定存在某些步驟未執行或者配置存在錯誤,進行相關操作或修改好後,再次執行start-dfs.sh命令啟動,如果還有不成功的,則繼續排除繼續執行start-dfs.sh命令,直到所有程序啟動成功。

啟動namenode前必須進行格式化,而在高可用中,需要先啟動journalnode後再格式化,否則無法成功格式化,所以先執行start-dfs.sh啟動journalnode後再執行hdfs namenode -format,然後再執行start-dfs.sh啟動namenode節點。

此時會發現,只在當前格式化後的節點上成功啟動了namenode程序,另乙個節點則啟動失敗,如果檢視相關log則會發現丟擲未格式化的異常。這時需要在啟動namenode的節點上執行hdfs namenode -bootstrapstandby命令完成格式化,此命令的執行必須啟動第乙個namenode之後,否則無法成功格式化第二個節點。最後再執行start-dfs.sh命令,成功啟動第二個namenode節點。

以上完成了namenode和datanode的啟動,但分別開啟兩個namenode的web發現,兩個namenode節點的狀態都為standby,現在還不具備高可用性,無法自動故障轉移,工作還得繼續。

首先需要啟動zookeeper服務,分別在預先分配好的三颱主機上執行zkserver.sh start啟動zookeeper服務,zkserver.sh status可以檢視各個服務的狀態。接著在其中一台namenode主機上執行hdfs zkfc -formatzk在zookeeper上建立znode,log中的successfully created /hadoop-ha/mycluster in zk表示建立成功,jps檢視發現多了quorumpeermain。再執行start-dfs.sh啟動zkfc守護程序dfszkfailovercontroller。

到此就已經完成了所有的啟動了,在分別重新整理namenode的web,會發現其中乙個為active狀態,另乙個為standby狀態。

大資料之hadoopHA配置

前提 環境配置好了zookeeper環境 first step 開啟hadoopha的初始化 1.在各個節點上啟動journalnode sbin hadoop daemon.sh start journalnode在 nn1 上,對其進行格式化,並啟動bin hdfs namenode forma...

Hadoop HA架構詳解

hdfs集群中的namenode存在單點故障因素。對於只有乙個namenode工作的集群來說,一旦namenode出現意外情況,會導致整個集群無法工作,直到namenode重新啟動。為了解決上述問題,hadoop給出了高容錯,高可用的ha方案 乙個hdfs集群至少存在兩個namenode,乙個nam...

Hadoop HA高可用集群故障定位

hadoop ha高可用集群namenode啟動後自動停止 hadoop集群啟動命令的正確順序如下 1 啟動zookeeper 每台都執行 zkserver.sh status 2 啟動journalnode 每台都執行 hadoop daemon.sh start journalnode 3 啟動...