zookeeper安装配置

zookeeper安装配置

完全分布式,三台阿里云服务器搭建的集群

下载、上传、解压缩

首先下载zookeeper:

下载链接:https://archive.apache.org/dist/zookeeper/

本次选用的版本是3.4.12

tar xvf zookeeper-3.4.12.tar -C /opt/zookeeper

环境配置(all three)

三个节点上都需要进行配置

vim /etc/profile
# Zookeeper config
export ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.12
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile

修改配置文件(Only master)

创建文件和目录

在集群的服务器上都创建这些目录

mkdir   /opt/zookeeper/data  
mkdir   /opt/zookeeper/dataLog
创建myid文件

在/opt/zookeeper/data目录下创建myid文件

cd /opt/zookeeper/data
touch myid

编辑myid文件,将master、slave01、slave02的myid文件内容改为0,1,2。此处先只修改master,后期拷贝完成后再修改slave01,slave02的myid

vim myid

输入0,保存退出

zoo.cfg
cd /opt/zookeeper/zookeeper-3.4.12/conf/
cp zoo_sample.cfg zoo.cfg

修改dataDir

dataDir=/opt/zookeeper/data

添加:

dataLogDir=/opt/zookeeper/dataLog
server.0=master:2888:3888
server.1=slave01:2888:3888
server.2=slave02:2888:3888

myid与这里的server后的数字要保持一致

拷贝到slave机器上

scp -r /opt/zookeeper root@slave01:/opt
scp -r /opt/zookeeper root@slave02:/opt

修改slave节点的配置文件

slave01:

cd /opt/zookeeper/data
vim myid

输入1,保存退出

Slave02:

cd /opt/zookeeper/data
vim myid

输入2,保存退出

启动zookeeper

每一台机器都需要进行启动

cd /opt/zookeeper/zookeeper-3.4.12/bin/

输入:

zkServer.sh start

启动成功后,检查启动状态

zkServer.sh status

因为zookeeper是选举制,它的主从关系并不是像hadoop那样指定的,具体可以看官方的文档说明。status命令可以查看各个机器上zookeeper的leader和follower

报错处理:

[root@master bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

启动成功,但显示Error contacting service. It is probably not running.

查看cat /opt/zookeeper/zookeeper-3.4.12/bin/zookeeper.out,一定要看完整的信息,找error

2020-10-31 14:26:12,228 [myid:1] - ERROR [slave01/118.178.191.14:3888:QuorumCnxManager$Listener@760] - Exception while listening
java.net.BindException: 无法指定被请求的地址 (Bind failed)
	at java.base/java.net.PlainSocketImpl.socketBind(Native Method)
	at java.base/java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:436)
	at java.base/java.net.ServerSocket.bind(ServerSocket.java:381)
	at java.base/java.net.ServerSocket.bind(ServerSocket.java:335)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:739)

这个问题主要是因为云服务器本身设置的问题,解决方案也很简单,只需要在在每个Zookeeper节点上的zoo.cfg里面添加上:

quorumListenOnAllIPs=true

再次启动即可成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值