前提:
-
三台hadoop节点可以正常启动hdfs
步骤:
1、下载zookeeper安装压缩包,解压到相应的目录
2、在安装目录下创建data/zkData文件夹,在文件夹下新建myid文件,里面输入1
2、修改conf目录下zoo.cfg文件(原始没有zoo.cfg, 把zoo_sample.cfg 复制一份更名为zoo.cfg)
表明集群有几台机器,并且指定和leader的端口号和参与投票的端口号
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
修改:dataDir=/opt/programs/zookeeper-3.4.5/data/zkData
3、通过scp把已经配置好zookeeper的节点上的/opt/programs/zookeeper-3.4.5 文件复制到另外2个hadoop节点上,修改myid为本节点对应的。
4.修改每个hadoop节点的hdfs配置文件(hdfs-site.xml),添加自动故障转移以及zookeeper服务
# hdfs-site.xml
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
# core-site.xml
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
</property>
5.启动zookeeper集群
# 分别在每一台节点上启动
zkServer.sh start
6.初始化HA在zookeeper中的状态
# 在某一个hadoop节点上执行
bin/hdfs zkfc -formatZK -force
7.启动hdfs
sbin/start-dfs.sh