在搭建HA(HDFS高可用)时,可以没有Secondary NameNode节点,但要有两个NN,ZK会选择其中一个NN作为active。
在搭建完全分布式时的Secondary NameNode合并edits文件的功能由Standby的NN替代了。
1.下载安装zookeeper
2.修改ZK的conf文件夹下的zoo.cfg
3.实现zoo.cfg里面预声明的文件目录
4.拷贝文件到其余节点机器
5.修改每个机器的环境变量
6.测试效果
1.下载安装zookeeper
请参照另一篇伪分布安装
2.修改ZK的conf文件夹下的zoo.cfg
- 需要拷贝模版
- 修改zoo.cfg
主机IP映射信息已经在hosts文件里面添加过了
dataDir代表zookeeper所产生的的事务日志和数据快照默认存放路径
server.对应每个集群中的每台机器,
其中2888(心跳端口)和3888(选举端口)代表接收和发送数据的端口。(是ZooKeeper(ZK)与ZKFC节点之间通信得端口,ZKFC负责监控和切换NN对的状态)
dataDir=/usr/soft/zookeeper/data
server.1=node-1:2287:3387
server.2=node-2:2287:3387
server.3=node-3:2287:3387
server.4=node-4:2287:3387
3.实现zoo.cfg里面预声明的文件目录
- mkdir -p /usr/soft/zookeeper/data
创建文件夹 - 创建编辑myid文件
为了保障server能和每台节点机器对应起来,还需要在dataDir所对应的文件夹中创建myid文件。每台机器都要创建; - touch /usr/soft/zookeeper/data/myid
创建空文件 - cd /usr/soft/zookeeper/data/
- 下面单个操作
每台机器的内容要和在zoo.cfg里面的点后面的数字对应;
另外几台就不贴了,记得改;
4.拷贝文件到其余节点机器
- scp -r zookeeper-3.4.9/ root@node-2:$PWD
有几台就拷贝几台;
5.修改每个机器的环境变量
export ZOOKEEPER_HOME=/usr/soft/zookeeper-3.4.9/
:$ZOOKEEPER_HOME/bin
- source /etc/profile
激活环境变量
6.测试效果
- zkServer.sh start
启动zk服务
切记:所有的节点都要启动,否则会掉坑里的;(目前无法像hadoop一样启动一个主节点其它的节点就都起来了,所以的一个个启动)
zoo.cfg里面配置了四个server,根据zookeeper的选举算法,当整个集群超过半数机器没启动时,zookeeper会认为集群处于不可用状态。 - jps
启动服务后查看进程的话正常会有下图这个,就是zk的进程
- zkServer.sh status
*查看运行状态 - zkCli.sh
开启客户端
显示下图代表成功!