说明: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. python 常用高效代码写法集锦

    一.打开文件 #使用 with 语句操作文件对象 with open(r'somefileName') as somefile: for line in somefile: print line # ...

  2. linux 下 TeXmacs 作 Maple 18 的前端

    TeXmacs的maple 插件比较老,默认条件下无法运行maple 18.且默认情况下maple18不在系统的搜索目录中,导致TeXmacs中不显示 maple 的session.以下假设TeXma ...

  3. CentOS+Apache+mod_wsgi+Python+Django

    前言 网上有关的教程千篇一律,都是无脑抄,自己都不验证一遍就直接复制,毫无意义,我通过官方文档和自己摸索,总结了一套教程. Django自带Web服务功能,但那只是方便开发调试,生产环境中一般将Dja ...

  4. Xcode 7.2.1 下载地址

    Xcode 7 下载地址(需要登录苹果开发者帐号) 7.2.1:https://developer.apple.com/services-account/download?path=/Develope ...

  5. apache配置多域名多站点记录

    <VirtualHost *:80>  DocumentRoot "/mnt/web/www.*.cn"  ServerName www.*.cn  ErrorLog ...

  6. [小哥Allegro72讲速成视频]

    http://v.qq.com/vplus/df932a993679cf80a0b6c87bb849e22c 第01讲 Allegro常用组件介绍 视频链接:http://v.qq.com/boke/ ...

  7. unity5.0新功能-布料、动画系统

    原作者:只待苍霞 这一章讲一下布料系统, 这次的布料系统有很大的改良.Unity4中, 需要对SkinnedMeshRenderer使用SkinnedCloth, 或者对Cloth Renderer使 ...

  8. VC++ 如何使窗体最大化或是最小化

    最大化最小的使得的函数是 ShowWindow函数 ShowWindow(SW_SHOWMINIMIZED);//最小化 ShowWindow(SW_SHOWMAXIMIZED);//最大化 Show ...

  9. HP工控机 G9 安装系统需注意

    HP工控机 G9 装系统需要:简单唠叨几句 1.F10 进配置,选择设置图标-选择存储图标-选择阵列卡图标-根据中间框提示制作riad(必须) 2.加载驱动 驱动直接复制到U盘根目录下,选择F11选择 ...

  10. Python之路-Day2

    二进制 1bit = 一个二进制位 8bit = 1byte 循环 for while 数据类型 数字.字符串.列表.元祖.字典.集合 字符编码 文件处理 for循环: for i in range( ...