實現Ubuntu Hadoop集群高可用需配置NameNode和ResourceManager的高可用,依賴ZooKeeper實現故障自動切換,步驟如下:
集群規劃:至少3臺Ubuntu服務器,分配角色如下:
基礎配置:
/etc/hosts
文件,添加所有節點的IP和主機名。ZooKeeper集群搭建:
zoo.cfg
文件,指定server.id=host:port:port
(如server.1=master:2888:3888
),并為每個節點創建myid
文件(內容為對應ID)。zkServer.sh start
,驗證狀態為Leader/Follower。HDFS高可用配置:
hdfs namenode -bootstrapStandby
同步至備用節點。hdfs-site.xml
中設置dfs.nameservices
、dfs.ha.namenodes
、dfs.namenode.rpc-address
等參數,啟用自動故障轉移dfs.ha.automatic-failover.enabled=true
。YARN高可用配置:
yarn-site.xml
中啟用ResourceManager高可用:yarn.resourcemanager.ha.enabled=true
,指定主備ResourceManager的hostname和ZooKeeper地址yarn.resourcemanager.zk-address
。啟動集群:
驗證高可用:
hdfs haadmin -getServiceState nn1
和yarn rmadmin -getServiceState rm1
檢查主備狀態。關鍵組件作用:
注意事項: