【先定一个小目标】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相关的路径。 |
【先定一个小目标】Ubuntu 16.04 搭建 zookeeper的更多相关文章
- 【转】64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解
64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解,开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛. 安装步骤 1.准备工具安装目录 下载 ar ...
- 先定一个小目标,自己封装个ajax
你是否发现项目中有很多页面只用到了框架不到十分之一的内容,还引了压缩后还有70多kb的jquery库 你是否发现项目中就用了两三个underscore提供的方法,其他大部分的你方法你甚至从来没有看过 ...
- Ubuntu 16.04搭建php5.6 Web服务器环境
Ubuntu 16.04默认安装php7.0环境,但是php7目前兼容性并不是很好,如果自行安装php5需要清除php7的已安装包,否则会报错. 移除默认及已安装的PHP包 sudo dpkg -l ...
- CentOS 6.9/Ubuntu 16.04搭建OpenVPN服务器以及客户端的使用
说明: 1.发现一个很奇怪的现象,CentOS和Ubuntu有着对用户不同的管理理念,比如CentOS中安装一切软件都是以root优先(su -),而Ubuntu则以当前用户优先,安装软件以sudo开 ...
- 【netcore基础】ubuntu 16.04 搭建.net core 2.1 linux 运行环境 nginx反向代理 supervisor配置自启动
今天来整理下 netcore 在 linux(ubuntu) 上的运行环境搭建 对应版本 ubuntu 16.04 .net core 2.1 nginx version: nginx/1.10.3 ...
- 阿里云ubuntu 16.04搭建odoo11服务器
ubuntu 16.04 具体如何搭建odoo11网站的具体步骤可以参考这一篇文章 按上面的文章配置环境后,自己网站的启动具体步骤如下: 1.登录阿里云 [远程连接],进入命令行界面1 2.cd到目录 ...
- Ubuntu 16.04搭建OpenVPN服务器以及客户端的使用
说明:启动时注意用户权限,比如root用户启动. Ubuntu: 服务器环境:Ubuntu 16.04 64位系统 内网IP:10.143.80.116 外网IP:203.195.1.2 OpenVP ...
- Ubuntu 16.04 搭建KVM环境
在Ubuntu 16.04下搭建KVM环境过程记录. 1 查看CPU是否支持KVM egrep "(svm|vmx)" /proc/cpuinfo 有结果输出,如下图: 2 安 ...
- 先定一个小目标:10天自学C语言编程,教你如何改变一生
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
随机推荐
- office outlook 無法開啟 outlook 視窗
例如[無法啟動Microsoft Office Outlook.無法開啟Outlook 視窗.] 1.啟動 Outlook 安全模式outlook.exe /safe2.清除並重新產生目前設定檔的功能 ...
- js:简单的拖动效果
效果演示:https://jsfiddle.net/dwqs/b5ywws9f/embedded/result/ html: <div class="wrap"> &l ...
- rand和srand的用法(转载)
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明. rand(产生随机数)表头文件: #include<stdlib.h> ...
- 湘潭邀请赛——Alice and Bob
Alice and Bob Accepted : 133 Submit : 268 Time Limit : 1000 MS Memory Limit : 65536 KB Problem ...
- IEnumerator<TItem>和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了
IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...
- OpenCV2马拉松第13圈——模版匹配
收入囊中 在http://blog.csdn.net/abcd1992719g/article/details/25505315这里,我们已经学习了怎样利用反向投影和meanshift算法来在图像中查 ...
- File to byte[] in Java
File to byte[] in Java - Stack Overflow https://stackoverflow.com/questions/858980/file-to-byte-in-j ...
- JDBC连接数据库核心代码
1.Oracle数据库 Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url ...
- caioj1275&&hdu4035: 概率期望值6:迷宫
期望的大难题,%%ZZZ大佬的解释,不得不说这是一道好题(然而膜题解都没完全看懂,然后就去烦ZZZ大佬) 简单补充几句吧,tmp的理解是个难点,除以tmp的原因是,当我们化简时,子节点也有一个B*f[ ...
- YTU 2891: E--围栏
2891: E--围栏 时间限制: 1 Sec 内存限制: 128 MB 提交: 91 解决: 24 题目描述 一串连续字符被称作围栏当且仅当它由间隔的'|'和'-'组成.比如"|-|- ...