【先定一个小目标】Ubuntu 16.04 搭建 zookeeper
ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系统中。
一、运行模式
Zookeeper 有三种运行模式:单机模式、伪集群模式和集群模式。
1、 单机模式
这种模式一般适用于开发测试环境,一方面我们没有那么多机器资源,另外就是平时的开发调试并不需要极好的稳定性。
在 Linux 环境下运行单机模式需要执行以下步骤:
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 表示该目录。
命令安装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 设置环境变量
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= ##Zookeeper最小时间单元,单位毫秒(ms),默认值为3000
dataDir=/home/tommy/zookeeper-3.4.9/data ##Zookeeper服务器存储快照文件的目录,必须配置
dataLogDir=/home/tomny/zookeeper-3.4.9/log ##Zookeeper服务器存储事务日志的目录,默认为dataDir
clientPort= ##服务器对外服务端口,一般设置为2181
initLimit= ##Leader服务器等待Follower启动并完成数据同步的时间,默认值10,表示tickTime的10倍
syncLimit= ##Leader服务器和Follower之间进行心跳检测的最大延时时间,默认值5,表示tickTime的5倍
4). 启动服务
使用 $ZK_HOME/bin 目录下的 zkServer.sh 脚本进行服务的启动。
bin/zkServer.sh start
bin/zkCli.sh -server localhost:2181
在查看zookeeper状态时遇到
tomny@tomny-virtual-machine:~/zookeeper-3.4.$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/tomny/zookeeper-3.4./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.$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/tomny/zookeeper-3.4./bin/../conf/zoo.cfg
Mode: standalone
5)、连接zookeeper
bin/zkCli.sh -server localhost:
Connecting to localhost:
以下省略1W字。。
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:(CONNECTED) ]
6)、键入help查看所有支持的命令
[zk: localhost:(CONNECTED) ] 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
2、常用命令
1)查看当前节点列表
[zk: localhost:(CONNECTED) ] ls / [zookeeper]
2)创建节点
[zk: localhost:(CONNECTED) ] create /test "test" Created /test [zk: localhost:(CONNECTED) ] ls / [zookeeper, test]
3)查看节点数据
[zk: localhost:(CONNECTED) ] get /test "test" cZxid = 0x300000007 ctime = Thu Sep :: PDT mZxid = 0x300000007 mtime = Thu Sep :: PDT pZxid = 0x300000007 cversion = dataVersion = aclVersion = ephemeralOwner = 0x0 dataLength = numChildren =
4)设置节点数据
[zk: localhost:(CONNECTED) ] set /test "" cZxid = 0x300000007 ctime = Thu Sep :: PDT mZxid = 0x300000008 mtime = Thu Sep :: PDT pZxid = 0x300000007 cversion = dataVersion = aclVersion = ephemeralOwner = 0x0 dataLength = numChildren = [zk: localhost:(CONNECTED) ] get /test "" cZxid = 0x300000007 ctime = Thu Sep :: PDT mZxid = 0x300000008 mtime = Thu Sep :: PDT pZxid = 0x300000007 cversion = dataVersion = aclVersion = ephemeralOwner = 0x0 dataLength = numChildren =
5)删除节点
[zk: localhost:(CONNECTED) ] delete /test [zk: localhost:(CONNECTED) ] ls / [zookeeper]
3、zookeeper四字命令的使用
传递四个字母的字符串给zookeeper,zookeeper会返回一些有用的信息。
zookeeper 四字命令 |
功能描述 |
conf |
输出相关服务配置的详细信息。 |
cons |
列出所有连接到服务器的客户端的完全的连接 /会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操作延迟、最后的操作执行等等信息。 |
dump |
列出未经处理的会话和临时节点。 |
envi |
输出关于服务环境的详细信息(区别于 conf命令)。 |
reqs |
列出未经处理的请求 |
ruok |
测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应。 |
stat |
输出关于性能和连接的客户端的列表。 |
wchs |
列出服务器 watch的详细信息。 |
wchc |
通过 session列出服务器 watch的详细信息,它的输出是一个与watch相关的会话的列表。 |
wchp |
通过路径列出服务器 watch的详细信息。它输出一个与 session相关的路径。 |
最新文章
- hibernate学习-HibernateDemo
- ASP.NET WebForm中用async/await实现异步出人意料的简单
- php特殊语法--模板引擎中比较常见
- [转]eclipse github 提交代码
- 【原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅1】
- mysql merge table
- Webpack 3 中的新特性
- nginx proxy_pass 与 rewrite 简记
- Head First Java.(第2版)
- Nacos系列:Nacos的Java SDK使用
- mysql创建表和数据库
- 关于graham扫描法求凸包的小记
- busybox下的tftp client
- float属性详解
- #001 GIT创建分支
- Bootstrap 3之美04-自定义CSS、Theme、Package
- hadoop程序MapReduce之WordCount
- SS配置出错解决方法
- 转:C#操作摄像头
- Linux中***配置
热门文章
- [转]JS 引擎的执行机制
- 类的相互依赖导致StackOverflowError
- PHPCMS中GET标签概述、 get 标签语法、get 标签创建工具、get 调用本系统演示样例、get 调用其它系统演示样例
- 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用
- BZOJ 2243: [SDOI2011]染色 树链剖分+线段树区间合并
- linux losetup
- HTML5你必须知道的28个新特性
- ABAP 邮件
- 添加和删除节点(HTML元素)
- “Invalid configuration file. File ";I:/My Virtual Machines/Windows XP english Professional/Windows XP Professional.vmx"; was created by a VMware product