zookeeper集群搭建
2015-09-24 17:21
656 查看
最近公司用到了zookeeper做集群管理,这里按步骤记录一下其中的一些经验,也给后来的同学一些参考。由于这里只有一台服务器,因此搭建的其实是伪集群,多台服务器的搭建流程类似。
发行版:CentOS-6.6 64bit
内核:2.6.32-504.el6.x86_64
CPU:intel-i7
3.6G
内存:2G
[root@rocket ~]# java -version
openjdk version "1.8.0_51"
OpenJDK Runtime Environment (build 1.8.0_51-b16)
OpenJDK 64-Bit Server VM (build 25.51-b03, mixed mode)
如果找不到jdk,可以通过yum进行安装,如果发行版不是CentOS,请自行搜索对应发行版的安装方法。
[root@rocket local]# yum -y install java
在官网http://zookeeper.apache.org/releases.html找一个合适的镜像进行下载。这里使用北理的镜像进行下载。
[root@rocket local]#
\
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
下载完成之后分别解压到
[root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server1
[root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server2
[root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server3
[root@rocket local]# cd /usr/local/zookeeper-server1/;cp conf/zoo_sample.cfg conf/zoo_test.cfg
[root@rocket local]# cd /usr/local/zookeeper-server2/;cp conf/zoo_sample.cfg conf/zoo_test.cfg
[root@rocket local]# cd /usr/local/zookeeper-server3/;cp conf/zoo_sample.cfg conf/zoo_test.cfg
zookeeper-server1
# 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
dataDir=/tmp/zookeeper-server1/data
dataLogDir=/tmp/zookeeper-server1/logs
# the port at which the clients will connect
clientPort=2181
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7770
server.3=127.0.0.1:8882:7770
zookeeper-server2
# 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
dataDir=/tmp/zookeeper-server2/data
dataLogDir=/tmp/zookeeper-server2/logs
# the port at which the clients will connect
clientPort=3181
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7770
server.3=127.0.0.1:8882:7770
zookeeper-server3
# 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
dataDir=/tmp/zookeeper-server3/data
dataLogDir=/tmp/zookeeper-server3/logs
# the port at which the clients will connect
clientPort=4181
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7770
server.3=127.0.0.1:8882:7770
[root@rocket local]# mkdir -p zookeeper-server1/logs zookeeper-server1/data
[root@rocket local]# mkdir -p zookeeper-server2/logs zookeeper-server2/data
[root@rocket local]# mkdir -p zookeeper-server3/logs zookeeper-server3/data
查看当前运行目录情况:
[root@rocket tmp]# tree
├──
zookeeper-server1
│
├──
data
│ └── logs
├──
zookeeper-server2
│
├──
data
│ └── logs
└── zookeeper-server3
├──
data
└── logs
[root@rocket tmp]# echo "1" > zookeeper-server1/data/myid
[root@rocket tmp]# echo "2" > zookeeper-server2/data/myid
[root@rocket tmp]# echo "3" > zookeeper-server3/data/myid
[root@rocket local]# cd /usr/local/zookeeper-server1/;bin/zkServer.sh start
[root@rocket local]# cd /usr/local/zookeeper-server2/;bin/zkServer.sh start
[root@rocket local]# cd /usr/local/zookeeper-server3/;bin/zkServer.sh start
查看启动状态
[root@rocket zookeeper-server1]# cd /usr/local/zookeeper-server1/;bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-server1/bin/../conf/zoo.cfg
Mode: follower
注意,这里如果提示
Error contacting service. It is probably not running.
说明进程启动失败或集群未建立成功,这时需要查看对应目录中的zookeeper.out日志去找到相应的原因并去解决它。
[root@rocket local]# cd zookeeper-server1;bin/zkCli.sh -server localhost:2181
可以看到这里已经连接成功了,而且能查看节点情况,说明zookeeper集群已经开始工作了。
集群搭建环境:
发行版:CentOS-6.6 64bit内核:2.6.32-504.el6.x86_64
CPU:intel-i7
3.6G
内存:2G
集群搭建步骤:
1.
确保机器安装了jdk
[root@rocket ~]# java -versionopenjdk version "1.8.0_51"
OpenJDK Runtime Environment (build 1.8.0_51-b16)
OpenJDK 64-Bit Server VM (build 25.51-b03, mixed mode)
如果找不到jdk,可以通过yum进行安装,如果发行版不是CentOS,请自行搜索对应发行版的安装方法。
[root@rocket local]# yum -y install java
2.
下载zookeeper,选一个合适的版本
在官网http://zookeeper.apache.org/releases.html找一个合适的镜像进行下载。这里使用北理的镜像进行下载。[root@rocket local]#
\
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
下载完成之后分别解压到
[root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server1
[root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server2
[root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server3
3.
拷贝配置文件
[root@rocket local]# cd /usr/local/zookeeper-server1/;cp conf/zoo_sample.cfg conf/zoo_test.cfg[root@rocket local]# cd /usr/local/zookeeper-server2/;cp conf/zoo_sample.cfg conf/zoo_test.cfg
[root@rocket local]# cd /usr/local/zookeeper-server3/;cp conf/zoo_sample.cfg conf/zoo_test.cfg
4.
修改配置文件
zookeeper-server1# 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
dataDir=/tmp/zookeeper-server1/data
dataLogDir=/tmp/zookeeper-server1/logs
# the port at which the clients will connect
clientPort=2181
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7770
server.3=127.0.0.1:8882:7770
zookeeper-server2
# 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
dataDir=/tmp/zookeeper-server2/data
dataLogDir=/tmp/zookeeper-server2/logs
# the port at which the clients will connect
clientPort=3181
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7770
server.3=127.0.0.1:8882:7770
zookeeper-server3
# 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
dataDir=/tmp/zookeeper-server3/data
dataLogDir=/tmp/zookeeper-server3/logs
# the port at which the clients will connect
clientPort=4181
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7770
server.3=127.0.0.1:8882:7770
5.
建立zookeeper运行目录,data目录和log目录
[root@rocket local]# mkdir -p zookeeper-server1/logs zookeeper-server1/data[root@rocket local]# mkdir -p zookeeper-server2/logs zookeeper-server2/data
[root@rocket local]# mkdir -p zookeeper-server3/logs zookeeper-server3/data
查看当前运行目录情况:
[root@rocket tmp]# tree
├──
zookeeper-server1
│
├──
data
│ └── logs
├──
zookeeper-server2
│
├──
data
│ └── logs
└── zookeeper-server3
├──
data
└── logs
6.
在data目录中创建文件
myid 文件,每个文件中分别写入当前机器的server id
[root@rocket tmp]# echo "1" > zookeeper-server1/data/myid[root@rocket tmp]# echo "2" > zookeeper-server2/data/myid
[root@rocket tmp]# echo "3" > zookeeper-server3/data/myid
7.
在每个目录中启动zookeeper
[root@rocket local]# cd /usr/local/zookeeper-server1/;bin/zkServer.sh start[root@rocket local]# cd /usr/local/zookeeper-server2/;bin/zkServer.sh start
[root@rocket local]# cd /usr/local/zookeeper-server3/;bin/zkServer.sh start
查看启动状态
[root@rocket zookeeper-server1]# cd /usr/local/zookeeper-server1/;bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-server1/bin/../conf/zoo.cfg
Mode: follower
注意,这里如果提示
Error contacting service. It is probably not running.
说明进程启动失败或集群未建立成功,这时需要查看对应目录中的zookeeper.out日志去找到相应的原因并去解决它。
8.
测试连接zookeeper集群
[root@rocket local]# cd zookeeper-server1;bin/zkCli.sh -server localhost:2181可以看到这里已经连接成功了,而且能查看节点情况,说明zookeeper集群已经开始工作了。
相关文章推荐
- Linux socket 初步
- linux lsof详解
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区
- Linux VS Unix:Linux欲一统天下 Unix不死
- linux下设定环境变量