zookeeper集群的搭建非常简单,随便网上一搜都几百篇搭建教程,本来不想写这文章的,但后来想想还是为学习留下一点记录吧。
步骤:
- 从网上下载zookeeper包并解压
- 修改zookeeper配置文件
- 把zookeeper文件夹拷贝到集群其他服务器(节点)
- 新建dataDir目录和myId文件
- 启动zookeeper,搭建成功
一、下载zookeeper
地址:https://www-us.apache.org/dist/zookeeper/stable/
//下载zookeeper
wget https://www-us.apache.org/dist/zookeeper/stable/zookeeper-3.4.12.tar.gz
//解压
tar -zxvf zookeeper-3.4.12.tar.gz
二、修改zookeeper配置文件
zookeeper的配置文件是zoo.cfg,但默认是不存在的,需要自己创建。
进入zookeeper/conf目录下把自带的zoo_sample.cfg 改名为真正的启动配置文件
cd conf/
cp zoo_sample.cfg zoo.cfg
zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
#重要提示,dataDir目录需要手动创建
dataDir=/usr/local/zookeeper/dataDir
#默认端口
clientPort=2181
#关键,集群ip配置,当前是x节点server.x就要用 0.0.0.0,不然报错。
server.1=0.0.0.0:2888:3888
server.2=tx002:2888:3888
server.3=tx003:2888:3888
三、把zookeeper文件夹拷贝到集群其他服务器(节点)
scp -r ./zookeeper ip:/usr/local/
四、新建dataDir目录和myId文件
新建的文件夹名和路径,取决于配置文件里的 dataDir属性。
例如,我的配置文件是 dataDir=/usr/local/zookeeper/dataDir
//所有节点分别创建dataDir目录
[ocj@tx001 zookeeper]$ mkdir dataDir
[ocj@tx001 zookeeper]$ cd dataDir
//在dataDir下创建文件myId,内容取决于配置文件的 server.x=ip:2888:3888中的x,如server.1,则内容为1
//如在服务器1,执行
[ocj@tx001 dataDir]$ echo 1 > myId
//如在服务器2,执行
[ocj@tx002 dataDir]$ echo 2 > myId
//如在服务器3,执行
[ocj@tx003 dataDir]$ echo 3 > myId
五.启动zookeeper
三个节点分别执行
[ocj@tx001 zookeeper]$ zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
检查zookeeper状态,有且只有一台是leader,其他都是follower。
[ocj@tx001 zookeeper]$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
停止zookeeper
[ocj@tx001 zookeeper]$ zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
至此,zookeeper集群搭建完毕!
以下是一些注意事项:
1.集群搭建大部分的问题都是网络通信问题,请确保集群之间网络畅通,防火墙,防火墙,防火墙,重要的事情说三遍。
2.注意配置文件里面的 server.x=0.0.0.0:2888:3888,网上说云服务器采用虚拟化的技术,我们监听的是物理网卡,不是虚拟机的网卡,0.0.0.0相当于监听所有网卡。
3.所有节点一起启动。我在搭建的时候,启动了一个节点,直接看日志,怎么拒绝访问错误??? 后来想起尼玛其他节点都忘了启动。
4.出问题记得看日志。日志文件是zookeeper根目录下 zookeeper.out,百度一下基本解决问题。
5.保持良好心态。在学习搭建环境的过程中,总会因为一些很小的错漏导致启动失败,就因为上面3点,气得我差点执行 rm -rf /,现在再看回去真的是非常简单。