【先定一个小目标】Ubuntu 16.04 搭建 zookeeper

ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。因为 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被普遍地应用于诸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系统中。html

1、运行模式

Zookeeper 有三种运行模式:单机模式、伪集群模式和集群模式。apache

一、 单机模式

这种模式通常适用于开发测试环境,一方面咱们没有那么多机器资源,另外就是平时的开发调试并不须要极好的稳定性。服务器

在 Linux 环境下运行单机模式须要执行如下步骤:session

1). 准备 Java 运行环境

安装 Java 1.6 或更高版本的 JDK,并配置好 Java 相关的环境变量 $JAVA_HOME 负载均衡

sudo apt-get install default-jdk

2). 下载 ZooKeeper 安装包

下载地址:http://zookeeper.apache.org/releases.html。选择最新的 stable 版本并解压到指定目录,咱们用 $ZK_HOME 表示该目录。分布式

命令安装Zookeeperoop

cd /home/tomny/zookeeper
sudo wget http://mirror.bjtu.edu.cn/apache/zookeeper/stable/zookeeper-3.4.9.tar.gz #下载zookeeper
tar xvzf zookeeper-3.4.9.tar.gz #解压
ln -s zookeeper-3.4.9 zookeeper #创建软连接

编辑/etc/profile 设置环境变量性能

# zookeeper配置
export ZOOKEEPER_INSTALL=/home/hadoop/zookeeper-3.3.5
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

3). 配置 zoo.cfg

首次使用 ZooKeeper,须要将 $ZK_HOME 下的 zoo_sample.cfg 文件重命名为 zoo.cfg,并进行如下配置测试

tickTime=2000    ##Zookeeper最小时间单元,单位毫秒(ms),默认值为3000
dataDir=/home/tommy/zookeeper-3.4.9/data    ##Zookeeper服务器存储快照文件的目录,必须配置
dataLogDir=/home/tomny/zookeeper-3.4.9/log     ##Zookeeper服务器存储事务日志的目录,默认为dataDir
clientPort=2181    ##服务器对外服务端口,通常设置为2181
initLimit=5    ##Leader服务器等待Follower启动并完成数据同步的时间,默认值10,表示tickTime的10倍
syncLimit=2    ##Leader服务器和Follower之间进行心跳检测的最大延时时间,默认值5,表示tickTime的5倍

4). 启动服务

使用 $ZK_HOME/bin 目录下的 zkServer.sh 脚本进行服务的启动。ui

cd /home/tomny/zookeeper-3.4.9/
bin/zkServer.sh start
bin/zkCli.sh -server localhost:2181

在查看zookeeper状态时遇到

tomny@tomny-virtual-machine:~/zookeeper-3.4.9$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/tomny/zookeeper-3.4.9/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

分析方法:

先stop 掉原zk

zkServer.sh stop

而后以start-foreground方式启动,会看到启动日志

zkServer.sh start-foreground
tomny@tomny-virtual-machine:~/zookeeper-3.4.9$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/tomny/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: standalone

5)、链接zookeeper

bin/zkCli.sh -server localhost:2181
Connecting to localhost:2181
如下省略1W字。。
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]

6)、键入help查看全部支持的命令

[zk: localhost:2181(CONNECTED) 0] help

ZooKeeper -server host:port cmd args

        stat path [watch]

        set path data [version]

        ls path [watch]

        delquota [-n|-b] path

        ls2 path [watch]

        setAcl path acl

        setquota -n|-b val path

        history

        redo cmdno

        printwatches on|off

        delete path [version]

        sync path

        listquota path

        rmr path

        get path [watch]

        create [-s] [-e] path data acl

        addauth scheme auth

        quit

        getAcl path

        close

        connect host:port

 

二、经常使用命令

1)查看当前节点列表

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

[zookeeper]

 

2)建立节点

[zk: localhost:2181(CONNECTED) 2] create /test "test"

Created /test

[zk: localhost:2181(CONNECTED) 3] ls /

[zookeeper, test]

3)查看节点数据

[zk: localhost:2181(CONNECTED) 4] get /test

"test"

cZxid = 0x300000007

ctime = Thu Sep 24 05:54:51 PDT 2015

mZxid = 0x300000007

mtime = Thu Sep 24 05:54:51 PDT 2015

pZxid = 0x300000007

cversion = 0

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 6

numChildren = 0

4)设置节点数据

[zk: localhost:2181(CONNECTED) 7] set /test "111111" 

cZxid = 0x300000007

ctime = Thu Sep 24 05:54:51 PDT 2015

mZxid = 0x300000008

mtime = Thu Sep 24 05:57:40 PDT 2015

pZxid = 0x300000007

cversion = 0

dataVersion = 1

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 8

numChildren = 0

[zk: localhost:2181(CONNECTED) 8] get /test

"111111"

cZxid = 0x300000007

ctime = Thu Sep 24 05:54:51 PDT 2015

mZxid = 0x300000008

mtime = Thu Sep 24 05:57:40 PDT 2015

pZxid = 0x300000007

cversion = 0

dataVersion = 1

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 8

numChildren = 0

 

5)删除节点

[zk: localhost:2181(CONNECTED) 9] delete /test

[zk: localhost:2181(CONNECTED) 10] ls /

[zookeeper]

 

三、zookeeper四字命令的使用

传递四个字母的字符串给zookeeper,zookeeper会返回一些有用的信息。

zookeeper

四字命令

功能描述

conf

输出相关服务配置的详细信息。

cons

列出全部链接到服务器的客户端的彻底的链接 /会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操做延迟、最后的操做执行等等信息。

dump

列出未经处理的会话和临时节点。

envi

输出关于服务环境的详细信息(区别于 conf命令)。

reqs

列出未经处理的请求

ruok

测试服务是否处于正确状态。若是确实如此,那么服务返回“imok ”,不然不作任何相应。

stat

输出关于性能和链接的客户端的列表。

wchs

列出服务器 watch的详细信息。

wchc

经过 session列出服务器 watch的详细信息,它的输出是一个与watch相关的会话的列表。

wchp

经过路径列出服务器 watch的详细信息。它输出一个与 session相关的路径。

相关文章
相关标签/搜索