zookeeper集群安装

本文详细介绍ZooKeeper集群的部署步骤,涵盖环境准备、节点规划、防火墙设置及主机重命名等内容,并给出具体配置文件示例。

 

ZooKeeper是一个 分布式的,开放源码的 分布式应用程序协调服务,是 Google的Chubby一个 开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户

实验环境:

主机名系统IP地址
hadoop1CentOS  6.5192.168.241.131
hadoop2CentOS  6.5192.168.241.133
hadoop3CentOS  6.5192.168.241.134

zookeeper3.4.9 的tar包链接为https://pan.baidu.com/s/1bpqZ9bHgzeri53AWgW2L4Q  提取码:sbp0 永久有效。

实验之前准备工作:

zookeeper集群节点规划

三台测试机全部关闭防火墙,要是生产环境建议开放防火墙规则即可,不建议直接关闭防火墙。

每台主机重命名,方便互相之间的通讯联系。

以第一台为例:

vim /etc/sysconfig/network
HOSTNAME=hadoop1

其它两台分别命令为 hadoop2和 hadoop3,最好重启生效。

做hosts主机记录中做域名解析,三台都一样

vim /etc/hosts
192.168.241.130 hadoop1
192.168.241.133 hadoop2
192.168.241.134 hadoop3

开始正式部署环境:

1:首先在第一台机器上(hadoop100)安装部署,上传安装包,解压

修改配置文件

tar xvf zookeeper-3.4.9.tar.gz 
mv zookeeper-3.4.9 zookeeper
cd zookeeper/conf/
mv zoo_sample.cfg zoo.cfg

 编辑配置文件。

vi conf/zoo.cfg
dataDir=/usr/local/zookeeper/data
server.0=hadoop1:2888:3888
server.1=hadoop2:2888:3888
server.2=hadoop3:2888:3888
解释说明:2888为通讯端口,3888为选举端口

2:把hadoop1上的zookeeper拷贝到其他两个节点

scp -rpq zookeeper hadoop2:/data/soft
scp -rpq zookeeper hadoop3:/data/soft

3(注意):需要在集群中的每台机器下面创建一个myid文件 保存当前节点的编号信息

myid文件的位置在:${dataDir}参数配置目录下面。以第一台为例:

cd /data/soft/zookeeper
mkdir data
cd data
vi myid
0
cat myid
0 

文件的内容根据上面指定的每个节点对应的编号0,1,2


4:启动

分别在每个节点上都启动

sh bin/zkServer.sh start

此时查看文件信息目录内容

 ll
总用量 1608
drwxr-xr-x.  2 1001 1001    4096 8月  23 2016 bin
-rw-rw-r--.  1 1001 1001   83539 8月  23 2016 build.xml
-rw-rw-r--.  1 1001 1001   90824 8月  23 2016 CHANGES.txt
drwxr-xr-x.  2 1001 1001    4096 4月  19 10:19 conf
drwxr-xr-x. 10 1001 1001    4096 8月  23 2016 contrib
drwxr-xr-x.  3 root root    4096 4月  19 10:41 data
drwxr-xr-x.  2 1001 1001    4096 8月  23 2016 dist-maven
drwxr-xr-x.  6 1001 1001    4096 8月  23 2016 docs
-rw-rw-r--.  1 1001 1001    1953 8月  23 2016 ivysettings.xml
-rw-rw-r--.  1 1001 1001    3499 8月  23 2016 ivy.xml
drwxr-xr-x.  4 1001 1001    4096 8月  23 2016 lib
-rw-rw-r--.  1 1001 1001   11938 8月  23 2016 LICENSE.txt
-rw-rw-r--.  1 1001 1001     171 8月  23 2016 NOTICE.txt
-rw-rw-r--.  1 1001 1001    1770 8月  23 2016 README_packaging.txt
-rw-rw-r--.  1 1001 1001    1585 8月  23 2016 README.txt
drwxr-xr-x.  5 1001 1001    4096 8月  23 2016 recipes
drwxr-xr-x.  8 1001 1001    4096 8月  23 2016 src
-rw-rw-r--.  1 1001 1001 1368238 8月  23 2016 zookeeper-3.4.9.jar
-rw-rw-r--.  1 1001 1001     819 8月  23 2016 zookeeper-3.4.9.jar.asc
-rw-rw-r--.  1 1001 1001      33 8月  23 2016 zookeeper-3.4.9.jar.md5
-rw-rw-r--.  1 1001 1001      41 8月  23 2016 zookeeper-3.4.9.jar.sha1
-rw-r--r--.  1 root root    9280 4月  19 11:13 zookeeper.out

查看每台的服务状态

hadoop1的状态为foller

[root@hadoop1 zookeeper]# sh bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/soft/zookeeper/bin/../conf/zoo.cfg
Mode: follower

hadoop2的状态为foller

[root@hadoop2 zookeeper]# sh bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/soft/zookeeper/bin/../conf/zoo.cfg
Mode: follower

 hadoop3的转态为leader,说明hadoop3为主节点。 

[root@hadoop3 zookeeper]# sh bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/soft/zookeeper/bin/../conf/zoo.cfg
Mode: leader 

 进入客户端模式可以查看相关信息:

 sh bin/zkCli.sh 
Connecting to localhost:2181
2018-04-19 10:49:05,854 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
2018-04-19 10:49:05,858 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=hadoop3
2018-04-19 10:49:05,858 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_152
2018-04-19 10:49:05,862 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2018-04-19 10:49:05,862 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/local/jdk1.8.0_152/jre
2018-04-19 10:49:05,862 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/data/soft/zookeeper/bin/../build/classes:/data/soft/zookeeper/bin/../build/lib/*.jar:/data/soft/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/data/soft/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/data/soft/zookeeper/bin/../lib/netty-3.10.5.Final.jar:/data/soft/zookeeper/bin/../lib/log4j-1.2.16.jar:/data/soft/zookeeper/bin/../lib/jline-0.9.94.jar:/data/soft/zookeeper/bin/../zookeeper-3.4.9.jar:/data/soft/zookeeper/bin/../src/java/lib/*.jar:/data/soft/zookeeper/bin/../conf:.:/usr/local/jdk1.8.0_152/lib/dt.jar:/usr/local/jdk1.8.0_152/lib/tools.jar
2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.32-431.el6.x86_64
2018-04-19 10:49:05,864 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2018-04-19 10:49:05,864 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2018-04-19 10:49:05,864 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/data/soft/zookeeper
2018-04-19 10:49:05,870 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@579bb367
Welcome to ZooKeeper!
2018-04-19 10:49:05,918 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-04-19 10:49:06,041 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@876] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
2018-04-19 10:49:06,056 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x262dbc746fb0001, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]

解释说明 :

领导者(leader),负责进行投票的发起和决议,更新系统状态
学习者(learner),包括跟随者(foller)和观察者(observer),
foller用于接受客户端请求并向客户端返回结果,在选主过程中参与投票。
observer可以接受客户端连接,将写请求转发给leader,但不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度。
客户端(client),请求发起者

结束语:

好了,这就是简单的zookeeper集群安装,我看网上很多地方写的特复杂,我就简化了一下,希望能帮助大家快速入门zookeeper,下次的博客就是对zookeeper使用的相关命令做解释,希望有兴趣的小伙伴可以看看。 

Zookeeper集群安装步骤如下: 1. **下载Zookeeper**:可使用`wget`命令下载指定版本,例如下载3.4.10版本: ```bash [root@jack soft]# wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz ``` 此步骤参考了引用[3]。 2. **上传并解压**:将下载的文件上传到服务器指定目录,如`/opt/apps`,然后进行解压和重命名操作。以下是针对`apache-zookeeper-3.7.1-bin.tar.gz`的示例: ```bash # 将zookeeper上传到/opt/apps目录下 tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz # 重命名 mv apache-zookeeper-3.7.1-bin zookeeper-3.7.1 ``` 该步骤依据引用[4]。 3. **编写启动脚本**:创建一个启动脚本,用于批量启动集群中的Zookeeper服务。在脚本中添加如下内容: ```bash #!/bin/bash echo "开始启动zookeeper服务..." for i in 1 2 3 do echo "正在启动server0$i的zookeeper服务..." # 需要将server修改为自己集群的主机名 我的主机名分别为server1, server2, server3 ssh server$i "source /etc/profile;/home/hadoop/zookeeper/bin/zkServer.sh start" # /home/hadoop/zookeeper/bin/zkServer.sh start 这里需要修改为自己的解压路径 done ``` 添加可执行权限并使用脚本: ```bash chmod +x /home/hadoop/ZK_All_Start.sh ./ZK_All_Start.sh # 需要shell脚步的目录 ``` 此部分参考引用[5]。 此外,如果服务器上没有安装JDK,可点击特定连接进入安装教程(引用[2])。安装好本地模式后,可使用以下命令启动Zookeeper服务端并查看进程: ```bash # 启动Zookeeper服务端 [admin@hadoop102 apache-zookeeper-3.5.7-bin]$ bin/zkServer.sh start # 查看进程 [admin@hadoop102 apache-zookeeper-3.5.7-bin]$ jps 4020 Jps 4001 QuorumPeerMain ``` 这部分内容参考引用[1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值