【先定一个小目标】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程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
随机推荐
- Centos 6.x 安装Nagios及WEB管理nagiosql实现windows及linux监控指南
一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报 ...
- Linux 快照
10个方法助你轻松完成Linux系统恢复 提交 我的留言 加载中 已留言 这也就是为什么系统恢复功能会让人感觉如此神奇.你可以很快地重新回到工作中去,就像什么事情都没有发生一样,也不用去管造成系统故障 ...
- 一例Ext4文件系统fsck后损坏的修复过程
1.故障发生背景 Ext4文件系统没有umount下来,之后做了fsck操作检查一致性,结果导致Ext4文件mount不上(有时也会表现为导致目录变成了文件). 报错提示信息:mount: wrong ...
- jsoncpp的api简要说明
1 jsoncpp的api简要说明 1,解析(json字符串转为对象) std::string strDataJson; Json::Reader JReader; Json::Value JObj ...
- css中使input输入框与img(图片)在同一行居中对齐
input,img{vertical-align:middle;},同时设置input和img的vertical-align属性,兼容ie7
- POJ 题目1204 Word Puzzles(AC自己主动机,多个方向查询)
Word Puzzles Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 10244 Accepted: 3864 S ...
- centos7 rpm 安装MySQL5.6
系统centos7,安装MySQL,出错,百度了一大堆,几乎都是通过yum安装的MySQL,我想说的是,通过yum自动安装的话系统自己会帮你做很多事情,相关联的包也会下下来,相当于替你省去了很多事情, ...
- 辛星浅析一次ajax的实现过程
说到ajax,那绝对是一个老生常谈的话题,近些年ajax技术的使用颇为盛行. 以下我们就以jQuery为例来从一个真实的项目中看一下ajax的实例. 首先是前端页面,这个页面我们使用的是bootstr ...
- SQLServer导出单表数据
采用生成脚本---仅数据.. 如果是部分数据,可以先把部分数据备份到一个表中 select * into .. from ...
- apache httpd 2.4 httpd
This is a wiki containing user-contributed recipes, tips, and tricks for the Apache HTTP Server (aka ...