您的位置:首页 > 大数据

Zookeeper集群搭建与基本操作

2017-11-28 19:17 423 查看
进入zookeeper官网,点击download。下载当前稳定版本的zookeeper。



上传解压zookeeper安装包。重命名为zookeeper。

[root@hadoop01 softwares]# mvzookeeper-3.4.10 zookeeper

进入conf文件夹。

[root@hadoop01 zookeeper]# cd conf/

[root@hadoop01 conf]# ls

configuration.xsl  log4j.properties  zoo_sample.cfg

拷贝zoo_sample.cfg命名为zoo.cfg。

[root@hadoop01 conf]# cp zoo_sample.cfgzoo.cfg

[root@hadoop01 conf]# vim zoo.cfg



修改dataDir地址,添加服务器地址与端口号

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/var/zookeeper

clientPort=2181

 

server.1=10.250.109.123:2888:3888

server.2=10.250.109.124:2888:3888

server.3=10.250.109.125:2888:3888

~     

 

 

将zookeeper拷贝给其他两台主机。

[root@hadoop01 conf]# scp -r/usr/softwares/zookeeper hadoop02:/usr/softwares/

[root@hadoop01 conf]# scp -r /usr/softwares/zookeeperhadoop03:/usr/softwares/

进入var文件夹下创建刚才在配置文件配置的路径,创建zookeeper文件夹。

[root@hadoop01 conf]# cd /var

[root@hadoop01 var]# mkdir zookeeper

[root@hadoop01 bin]# cd /var/zookeeper/

在/var/zookeeper文件夹下创建一个myid文件。里面写本主机id。

[root@hadoop01 zookeeper]#vim myid

命名规则:

本主机为server.1 在myid文件内写入数字1即可。



[root@hadoop01 var]# ssh hadoop02

Last login: Fri Oct 20 13:16:50 2017 from10.250.95.162

[root@hadoop02 ~]# cd /var

[root@hadoop02 var]# mkdir zookeeper

[root@hadoop02 bin]# cd /var/zookeeper/

[root@hadoop02 zookeeper]# vim myid

本主机为server.2。在myid文件内写入2即可。



[root@hadoop02 var]# ssh hadoop03

Last login: Thu Oct 19 15:06:58 2017 from10.250.95.162

[root@hadoop03 ~]# cd /var/

[root@hadoop03 var]# mkdir zookeeper

[root@hadoop03 bin]# cd /var/zookeeper/

[root@hadoop03 zookeeper]# vim myid

同理,在hadoop03写入3。

进入zookeeper安装目录下bin文件夹,启动zookeeper。



查看进程。发现QuorumPeerMain启动成功。



同理。分别启动hadoop02,hadoop03主机的zookeeper进程。

查看3台主机的状态。命令为 sh zkServer.shstatus

Hadoop01是一个追随者。



Hadoop02是领导者。


使用nc(也可以使用telnet)发送rouk(are you ok?)到监听端口,检测是否运行。

[root@hadoop01 zookeeper]# echo ruok | nclocalhost 2181

imok[root@hadoop01 zookeeper]#

返回imok(I am ok)。

使用nc(也可以使用telnet)发送stat到监听端口,检测运行状态。

[root@hadoop01 zookeeper]# echo stat | nclocalhost 2181          

Zookeeper version:3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT

Clients:

 /0:0:0:0:0:0:0:1:59969[0](queued=0,recved=1,sent=0)

 

Latency min/avg/max: 0/0/0

Received: 4

Sent: 3

Connections: 1

Outstanding: 0

Zxid: 0x0

Mode: follower

Node count: 4

[root@hadoop01 zookeeper]#

Zookeeper四字命令
ZooKeeper 支持某些特定的四字命令(The Four LetterWords)与其进行交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。 ZooKeeper 常用四字命令主要如下:
 
ZooKeeper四字命令
功能描述
conf
3.3.0版本引入的。打印出服务相关配置的详细信息。
cons
3.3.0版本引入的。列出所有连接到这台服务器的客户端全部连接/会话详细信息。包括"接受/发送"的包数量、会话id、操作延迟、最后的操作执行等等信息。
crst
3.3.0版本引入的。重置所有连接的连接和会话统计信息。
dump
列出那些比较重要的会话和临时节点。这个命令只能在leader节点上有用。
envi
打印出服务环境的详细信息。
reqs
列出未经处理的请求
ruok
测试服务是否处于正确状态。如果确实如此,那么服务返回"imok",否则不做任何相应。
stat
输出关于性能和连接的客户端的列表。
srst
重置服务器的统计。
srvr
3.3.0版本引入的。列出连接服务器的详细信息
wchs
3.3.0版本引入的。列出服务器watch的详细信息。
wchc
3.3.0版本引入的。通过session列出服务器watch的详细信息,它的输出是一个与watch相关的会话的列表。
wchp
3.3.0版本引入的。通过路径列出服务器watch的详细信息。它输出一个与session相关的路径。
mntr
3.4.0版本引入的。输出可用于检测集群健康状态的变量列表
 

Zookeeper客户端

[root@hadoop01 bin]# sh zkcli.sh -timeout5000 -server 10.250.109.123:2181

连接完成。



输入h查看所有指令。



使用ls / 查看所有节点

[zk: 10.250.109.123:2181(CONNECTED) 1] ls /

[zookeeper]

查看zookeeper的节点信息

[zk: 10.250.109.123:2181(CONNECTED) 2] stat/zookeeper

cZxid = 0x0

ctime = Wed Dec 31 19:00:00 EST 1969

mZxid = 0x0

mtime = Wed Dec 31 19:00:00 EST 1969

pZxid = 0x0

cversion = -1     /版本号

dataVersion = 0  /数据版本号

aclVersion = 0   /权限版本号

ephemeralOwner = 0x0   /是否临时节点

dataLength = 0           /数据长度

numChildren = 1     /子节点数

 

创建节点

[zk: 10.250.109.123:2181(CONNECTED) 4]create /node_1 111

Created /node_1

创建子节点

[zk: 10.250.109.123:2181(CONNECTED) 5]create /node_1/node_1_1 112

Created /node_1/node_1_1

创建临时节点

[zk: 10.250.109.123:2181(CONNECTED) 6]create -e  /node_1/node_1_2 113

Created /node_1/node_1_2

当输入quit退出当前客户端。临时节点当消失。

创建顺序节点

[zk: 10.250.109.123:2181(CONNECTED) 8]create -s  /node_1/node_1_3 113

Created /node_1/node_1_30000000002

[zk: 10.250.109.123:2181(CONNECTED) 9]create -s  /node_1/node_1_3 113

Created /node_1/node_1_30000000003

创建的节点名将会自增。

 

修改节点数据

[zk: 10.250.109.123:2181(CONNECTED) 10] set/zookeeper 999

cZxid = 0x0

ctime = Wed Dec 31 19:00:00 EST 1969

mZxid = 0x100000009

mtime = Sat Oct 28 02:05:07 EDT 2017

pZxid = 0x0

cversion = -1

dataVersion = 1

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 3

numChildren = 1

[zk: 10.250.109.123:2181(CONNECTED) 11] get/zookeeper

999    //数据被修改

cZxid = 0x0

ctime = Wed Dec 31 19:00:00 EST 1969

mZxid = 0x100000009

mtime = Sat Oct 28 02:05:07 EDT 2017

pZxid = 0x0

cversion = -1

dataVersion = 1

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 3

numChildren = 1

 

使用get获取节点数据信息。

[zk: 10.250.109.123:2181(CONNECTED) 7] get/node_1

111

cZxid = 0x100000004

ctime = Sat Oct 28 02:00:19 EDT 2017

mZxid = 0x100000004

mtime = Sat Oct 28 02:00:19 EDT 2017

pZxid = 0x100000006

cversion = 2

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 3

numChildren = 2

 

删除指令只能删除没有子节点的节点

[zk: 10.250.109.123:2181(CONNECTED) 12]delete /node_1

Node not empty: /node_1

循环删除全部节点

[zk: 10.250.109.123:2181(CONNECTED) 13] rmr/node_1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息