您的位置:首页 > 运维架构 > Linux

Red Hat Linux 6.5 安装Zookeeper集群

2018-05-28 16:52 232 查看

一,安装环境:

操作系统:Red Hat Linux 6.5JDK版本:1.8.0_151 //需先安装JDKZookeeper版本:3.4.12

设置每个节点的hosts文件。# vi /etc/hosts //添加以下内容 10.11.111.42 mrzwk-5 10.11.111.43 mrzwk-6 10.11.111.45 mrzwk-8重启生效。(reboot)

二、安装zookeeper集群

# cd /home/weihu
# mkdir kafka
//解压
# tar -zxvf zookeeper-3.4.12.tar.gz -C kafka
#cd kafka
//创建链接
# ln -s zookeeper-3.4.12 zookeeper
# cd zookeeper
//创建日志目录
# mkdir -pv logs
//创建数据目录
# mkdir -pv data

配置zookeeper环境变量# vi /etc/profile export PATH=/home/weihu/kafka/zookeeper/bin:$PATH 保存退出 //初始化 # source /etc/profile配置zookeeper集群:

集群节点数量要为奇数,且至少有3个节点,因为ZooKeeper集群是以宕机个数过半才会让整个集群宕机的。搭建ZooKeeper集群时,一定要先停止所有已经启动的节点。

修改配置文件:

# cd /home/weihu/kafka/zookeeper/conf
# cp zoo_sample.cfg zoo.cfg
#vi zoo.cfg
增加或修改成如下代码:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/weihu/kafka/zookeeper/data
dataLogDir=/home/weihu/kafka/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
server.1=10.11.111.42:2888:3888
server.2=10.11.111.43:2888:3888
server.3=10.11.111.45:2888:3888

# the maximum number of client connections.
# increase this if you need to handle more clients
maxClientCnxns=60
创建myid文件:

在mrzwk-5上执行:# echo 1 > /home/weihu/kafka/zookeeper/data/myid 在mrzwk-6上执行:# echo 2 > /home/weihu/kafka/zookeeper/data/myid 在mrzwk-8上执行:# echo 3 > /home/weihu/kafka/zookeeper/data/myid备注:myid文件中只有一行内容,且内容为该节点对应的server.id中的id编号

启动zookeeper集群:# cd /home/weihu/kafka/zookeeper/bin # zkServer.sh start ZooKeeper JMX enabled by default Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED查看zookeeper进程:# jps //显示当前所有Java进程的PID 6470 Jps 6316 QuorumPeerMain查看zookeeper集群状态:

# zkServer.sh status
上述步骤分别在三台服务器上执行,

在mrzwk-5上:
# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg
Mode: follower

在mrzwk-6上:

# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg
Mode: follower
在mrzwk-8上:# zkServer.sh status ZooKeeper JMX enabled by default Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg Mode: leader备注:正常情况下应该是1个leader节点,2个follower节点

若zkServer.sh status命令执行显示-bash: zkServer.sh: command not found

命令改为./zkServer.sh status可正常执行

连接zookeeper集群:# zkCli.sh -server mrzwk-5:2181,mrzwk-6:2181,mrzwk-8:2181成功连接后,可以看到如下输出:Welcome to ZooKeeper! 2018-05-04 10:39:27,990 [myid:] - INFO [main-SendThread(mrzwk-5:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server mrzwk-5/10.11.111.42:2181. Will not attempt to authenticate using SASL (unknown error) JLine support is enabled 2018-05-04 10:39:28,071 [myid:] - INFO [main-SendThread(mrzwk-5:2181):ClientCnxn$SendThread@878] - Socket connection established to mrzwk-5/10.11.111.42:2181, initiating session [zk: mrzwk-5:2181,mrzwk-6:2181,mrzwk-8:2181(CONNECTING) 0] 2018-05-04 10:39:28,116 [myid:] - INFO [main-SendThread(mrzwk-5:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server mrzwk-5/10.11.111.42:2181, sessionid = 0x30000a829550000, negotiated timeout = 30000 WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: mrzwk-5:2181,mrzwk-6:2181,mrzwk-8:2181(CONNECTED) 0]

三,可能遇到的报错

1,报错:Zookeeper启动成功,zkServer.sh status 报错
# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
原因:
  1. zoo.cfg文件配置出错:dataLogDir指定的目录未被创建
  2. myid文件中的整数格式不对,或者与zoo.cfg中的server整数不对应
  3. 防火墙相关端口是否开启(2181,2888,3888)
  4. ZooKeeper集群IP不能正确映射
    单机模式正常,且单机模式下能互相访问,切换至分布式Zookeeper启动成功,zkServer.sh status 报错。
    zookeeper.out日志输出如下:

    解决:更改配置文件zoo.cfg
    在mrzwk-5上:
  5. server.1=0.0.0.0:2888:3888
    server.2=10.11.111.43:2888:3888
    server.3=10.11.111.45:2888:3888
    在mrzwk-6上:
    server.1=10.11.111.42:2888:3888
    server.2=0.0.0.0:2888:3888
    server.3=10.11.111.45:2888:3888
    在mrzwk-8上:
    server.1=10.11.111.42:2888:3888
    server.2=10.11.111.43:2888:3888
    server.3=0.0.0.0:2888:3888

保存配置文件,并重启服务。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: