在原有的Hadoop集群的基础上,配置HA高可用集群,简单修改配置文件,具体配置及启动方案如下:
(先停止Hadoop集群)
修改
core-site.xml(指定ZK集群,使ZK能够监督master的运行,启动备用节点,我的主节点主机名为Kate,并非master,配置HA的时候改名为apollo,个人喜好,请注意,酌情忽略此细节)
未修改之前的core-site.xml
修改之后:
就是增加一个property,指定ZooKeeper集群的端口号
另外
默认的HDFS路径 ,取名为cluster1,hdfs://后面不再跟主机名和端口号
而是设置一个
hdfs的nameservice取名为cluster1
因此,改成hdfs://cluster1即可(注意,集群名cluster1在hdfs-site.xml里面也要用到,注意对应)
修改
hdfs-site.xml
在原有基础上,修改或添加如下信息:
修改
yarn-site.xml
然后配两个主节点的端口:
注意,如果要配
<!--RM1 RM2 is different-->
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm1</value>
</property>
这个属性的话,两台主节点是不同的(当然可以不配这个属性)
以下为第一次启动时需要做的:
分别在每个节点启动journalnode:
hadoop-daemon.sh start journalnode
第一次启动的时候要格式化HDFS:
hdfs namenode -format
然后格式化ZKFC
:
hdfs zkfc -formatZK
这两步操作均要在主节点上配置(不是备用主节点,注意)
启动主节点的NameNode: hdfs namenode
在备用节点上执行同步数据(格式化):
bin/hdfs namenode -bootstrapStandby
在主节点Ctrl+C,关掉NameNode
(启动主节点的NameNode时可以用hadoop-daemon.sh start namenode)
在两个主节点上启动zkfc进程:hadoop-daemon.sh start zkfc
启动:
1.先启动所有节点的ZooKeeper
2.在第一台主节点上启动HDFS:
start-dfs.sh
第一台主节点如下进程
另一台备用的主节点:
从节点:
3.在主节点启动Yarn:
start-yarn.sh
这时,主节点的ResourceManager会启动
从节点的NodeManager会启动
4.单独启动备用节点的ResourceManager,在备用节点:
yarn-daemon.sh
start resourcemanager