说明:zookeeper完全可以standalone,也可以伪集群形式,当然生产中都是集群形式。另外,也可以在windows下运行。

如果只是研究用,完全可以在windows下使用standalone或者伪集群形式。

为什么要集群?当然是为了更稳定的服务。另外因为这货的机制是超过半数节点存活才可以提供服务,所以集群时不要将数量搞成偶数 -- 不是不可以,只是很别扭。

个人是用了三台虚拟机(主要是想研究下大数据云计算之类的,集群是必须),CentOS 6.8 x64,Basic Server模式安装。对了,虚拟机是virtual box (简称vbox)。

------------------------------这部分信息不需要的可以略过:开始--------------------------------

安装vbox、新建虚拟机、安装CentOS的过程就不说了,如果需要可以自行百度,或者私信我也行。

有一点要提一下,网卡设置,我用的是桥接,也建议大家使用桥接,原因如下。

vbox的网络连接有三种:NAT (转换)、桥接、Host-only (仅主机)。

各自的特点是:NAT可以访问外网,但主机与虚拟机之间不能直接通信(可以通过端口转发,个人不喜欢);桥接是局域网独立IP,可以访问外网;Host-only则只能与主机通信,不能外网。

因为涉及到虚拟机之间的交互以及主机与虚拟机之间的交互,个人更喜欢桥接,给每个虚拟机配置固定的局域网ip即可 -- 缺点也有,就是换一个环境就不能使用了,除非局域网是类似的(网关、许可等)。

CentOS配置ip很简单,可以使用setup命令配置,半图形化的操作。或者修改/etc/sysconfig/network-scripts/ifcfg-eth0中的内容 -- 记得重启网络服务service network restart。

建议在装完一个系统之后,做一个快照,再将需要的软件如JDK、redis、zookeeper等都上传上去,然后配置好环境变量等,再做一个快照。(略)

然后,克隆该系统,记得选择重新生成网卡硬件地址。

然后,进入复制出来的系统,使用上面提到的方法修改ip,记得删除里面的UUID和硬件地址(修改也行)。--此时重启网络服务是无效的,因为系统缓存了一些网络信息。

缓存的信息位于 /etc/udev/rules.d/70-presistent-net.rules,删除该文件,最后重启系统,搞定。

------------------------------这部分信息不需要的可以略过:结束--------------------------------

1、下载

官方地址:http://zookeeper.apache.org/releases.html

可以找镜像网站下载:http://mirrors.hust.edu.cn/apache/zookeeper/  等等。

我下载的是当前最新的release版本:zookeeper-3.4.9.tar.gz。

2、解压

tar -zxvf zookeeper-3.4.9.tar.gz   ,解压出来的文件夹是zookeeper-3.4.9 (我的已经重命名为zookeeper,为了方便)。

3、配置 (standalone)

进入解压后的文件夹,里面有一个conf文件夹,其中包含了三个文件:

-rw-rw-r--. 1 1001 1001  535 8月  23 15:39 configuration.xsl
-rw-rw-r--. 1 1001 1001 2161 8月 23 15:39 log4j.properties
-rw-rw-r--. 1 1001 1001 922 8月 23 15:39 zoo_sample.cfg

复制一份 zoo_sample.cfg,重命名为zoo.cfg -- zookeeper启动需要加载zoo.cfg文件。

其中的内容:

[root@localhost conf]# cat zoo_sample.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
[root@localhost conf]#

其他的都好说,最重要的是要设置dataDir -- 保存快照的位置,注意,不要使用/tmp,这是临时文件夹。

我设置的位置是 zookeeper文件夹下面的data:

dataDir=/root/zookeeper/data

至此,zookeeper已经可以standalone运行了。

4、运行服务端 (standalone)

很简单,执行./bin/zkServer.sh start 即可,启动完毕会有提示。

zkServer.sh 必须附加参数,参数可以是startrestartstatusstop等。

5、运行客户端

很简单,执行./bin/zkCli.sh host:port 即可,如果是连接当前主机,可以省略host:port。

6、操作

连接后就可以进行操作了。如果不知道有哪些操作,可以输入help查看(或者胡乱敲一串也行,会提示有哪些命令),或者搜索引擎。

[zk: localhost:2181(CONNECTED) 18] 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
[zk: localhost:2181(CONNECTED) 19]

create负责创建路径并设值;

get负责获取路径的值;

set负责修改路径的值;

delete负责删除路径;

rmr负责删除路径;--暂不清楚与delete的区别

ls负责查看路径

ls2负责查看路径

stat负责统计路径信息

quit退出客户端

注意,这里只是简略的说一下,具体的请自行研究。

创建:create /com “intel”

[zk: localhost:2181(CONNECTED) 3] create /com "intel"
Created /com

获取:get /com

[zk: localhost:2181(CONNECTED) 0] get /com
intel
cZxid = 0x10000001d
ctime = Sun Dec 25 17:33:43 CST 2016
mZxid = 0x10000001d
mtime = Sun Dec 25 17:33:43 CST 2016
pZxid = 0x10000001d
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0

修改:set /com “google”

[zk: localhost:2181(CONNECTED) 2] set /com "google"
cZxid = 0x10000001d
ctime = Sun Dec 25 17:33:43 CST 2016
mZxid = 0x100000021
mtime = Sun Dec 25 17:36:12 CST 2016
pZxid = 0x10000001d
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0

需要注意,不能凭空get或set,必须先create才可以操作。否则会提示节点不存在:

[zk: localhost:2181(CONNECTED) 5] set /com/a "a"
Node does not exist: /com/a

删除:delete /com

删除之后再获取就会提示节点不存在:

[zk: localhost:2181(CONNECTED) 6] delete /com
[zk: localhost:2181(CONNECTED) 7] get /com
Node does not exist: /com

各个命令具体意义请自行搜索,这里仅作测试。


7、设置(集群)

① 修改zoo.cfg,在最后添加内容:

# clusters
server.1=192.168.0.210:2888:3888
server.2=192.168.0.211:2888:3888
server.3=192.168.0.212:2888:3888

②设置myid:

注意,server.X中的X是指服务器的id,需要在${dataDir}myid文件里设置(需要手动新建该文件,默认不存在)。

其后的内容是host:2888:3888,暂时不明白2888:3888的含义。但host可以是主机名,也可以是ip,看个人习惯了。

别忘了设置myid文件及其内容!!!

linux可以使用    echo “X” > /root/zookeeper/data/myid    搞定 -- 注意换成自己的路径。

8、启动服务器(集群)

还是 ./bin/zkServer.sh start ,只不过要将集群中的所有服务器都启动起来。

如果之前已启动,建议关闭或重启:./bin/zkServer.sh stop  或./bin/zkServer.sh restart

9、客户端(集群)

还是 ./bin/zkCli.sh,只不过此时可以选择连接的服务器,仍然可以连接当前主机的服务器。

10、操作(集群)

很简单,在一个客户端里新建一个节点,然后在另一个客户端修查看、修改即可。

不再细说。

zookeeper学习(一)安装、配置、运行的更多相关文章

  1. ZooKeeper学习2---ZooKeeper安装配置

    一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是在一台物 ...

  2. 原创:centos7.1下 ZooKeeper 集群安装配置+Python实战范例

    centos7.1下 ZooKeeper 集群安装配置+Python实战范例 下载:http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeepe ...

  3. hbase和ZooKeeper集群安装配置

    一:ZooKeeper集群安装配置 1:解压zookeeper-3.3.2.tar.gz并重命名为zookeeper. 2:进入~/zookeeper/conf目录: 拷贝zoo_sample.cfg ...

  4. centos8安装fastdfs6.06集群方式三之:storage的安装/配置/运行

    一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...

  5. centos8安装fastdfs6.06集群方式二之:tracker的安装/配置/运行

    一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...

  6. zookeeper学习及安装

    HBase提示已创建表,但是list查询时,却显示表不存在. https://blog.csdn.net/liu16659/article/details/80216085 http://archiv ...

  7. windows + flutter +android+ vscode 安装配置运行流程(详细版本)

    flutter 是由谷歌发布的一个全新的响应式.跨平台.高性能的移动开发框架,可以快速在iOS和Android上构建高质量的原生用户界面. 框架特点 快速开发:Flutter的热重载可以快速地进行测试 ...

  8. JMeter安装+配置+运行

    环境配置: 操作系统:Win7系统 jdk版本:1.8 JMeter版本:3.0 一  JMeter的安装配置过程 JMeter是100%纯java应用程序,它在任何支持完整java实现的系统上都能正 ...

  9. 8.3.ZooKeeper集群安装配置

    1.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. 单机模式:Zookeeper只运行在一台服务器上,适合测试环境: 伪集群模式:就是在一台物理机上 ...

  10. centOS学习part4:安装配置vsftp

    0 上一章(http://www.cnblogs.com/souvenir/p/3875934.html)我们完成了对远程工具VNC的安装配置,接下来我们将安装另外一个常用工具:VSFTP. vsft ...

随机推荐

  1. 转 LoadRunner 技巧之协议分析

    在做性能测试的时候,协议分析是困扰初学者的难题,选择错误的协议会导致Virtual User Generator 录制不到脚本:或录制的脚本不完整,有些应用可能需要选择多个协议才能完整的记录 客户端与 ...

  2. 关于subGradent descent和Proximal gradient descent的迭代速度

    clc;clear; D=1000;N=10000;thre=10e-8;zeroRatio=0.6; X = randn(N,D); r=rand(1,D); r=sign(1-2*r).*(2+2 ...

  3. 代理模式(Proxy pattern)

    代理模式(proxy pattern):作用:为其他对象提供一种代理,以控制对这个对象的访问.代理对象在客户端对象和目标对象之间起中介的作用. 代理模式涉及到的角色: 抽象角色:声明真实对象和代理对象 ...

  4. 时间服务器:NTP 服务器

    15.1 关于时区与网络校时的通讯协议   使得每一部主机的时间同步化.   DHCP 客户端/服务器端所需要的租约时间限制. 网络侦测时所需要注意的时间点.刚刚谈到的登录文件分析功能.具有相关性的主 ...

  5. ActiveX: 如何用.inf和.ocx文件生成cab文件

    ActiveX: 如何用.inf和.ocx文件生成cab文件  

  6. kafka生产消息的速度跟什么有关?

    kafka的吞吐量很大,在保证带宽的情况下,网上的一些测试表明3台broker,没有replication,6个partition的情况下,一般的写入速度可以达到300MB/s.参考:kakfa测试 ...

  7. css书写规范及特殊样式

    1.CSS书写顺序: (1)位置:position.top.right.z-index.display.float (2)大小:width.height.padding.margin (3)文字系列: ...

  8. 正则表达式提取string 中的表名

    简单版本: Regex reg = new Regex(@"(?i)\bfrom\b(?![^\[\]]*\])\s+(\[[^\[\]]+\]|\S+)"); MatchColl ...

  9. apk添加系统签名

    上一节,可以通过添加su的方式获取系统权限,但这种存在安全隐患,故不推荐,本文通过获取数字签名方式获取系统权限. 在我们的AndroidManifest.xml中添加    android:share ...

  10. 解决SOAPCLIENT访问WebSerivce外网发布端口

    猫用vs2010写了一个webservice,并写了一个盘点程序客户端,PDA盘点机用C#开发,笔记本用VFP开发,发布在本地局域网IIS服务器,用了两年一直很稳定.后面仓库搬迁,需要外网进行访问,在 ...