zookeeper学习(一)安装、配置、运行
说明: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 必须附加参数,参数可以是start、restart、status、stop等。
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学习(一)安装、配置、运行的更多相关文章
- ZooKeeper学习2---ZooKeeper安装配置
一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是在一台物 ...
- 原创:centos7.1下 ZooKeeper 集群安装配置+Python实战范例
centos7.1下 ZooKeeper 集群安装配置+Python实战范例 下载:http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeepe ...
- hbase和ZooKeeper集群安装配置
一:ZooKeeper集群安装配置 1:解压zookeeper-3.3.2.tar.gz并重命名为zookeeper. 2:进入~/zookeeper/conf目录: 拷贝zoo_sample.cfg ...
- centos8安装fastdfs6.06集群方式三之:storage的安装/配置/运行
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- centos8安装fastdfs6.06集群方式二之:tracker的安装/配置/运行
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- zookeeper学习及安装
HBase提示已创建表,但是list查询时,却显示表不存在. https://blog.csdn.net/liu16659/article/details/80216085 http://archiv ...
- windows + flutter +android+ vscode 安装配置运行流程(详细版本)
flutter 是由谷歌发布的一个全新的响应式.跨平台.高性能的移动开发框架,可以快速在iOS和Android上构建高质量的原生用户界面. 框架特点 快速开发:Flutter的热重载可以快速地进行测试 ...
- JMeter安装+配置+运行
环境配置: 操作系统:Win7系统 jdk版本:1.8 JMeter版本:3.0 一 JMeter的安装配置过程 JMeter是100%纯java应用程序,它在任何支持完整java实现的系统上都能正 ...
- 8.3.ZooKeeper集群安装配置
1.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. 单机模式:Zookeeper只运行在一台服务器上,适合测试环境: 伪集群模式:就是在一台物理机上 ...
- centOS学习part4:安装配置vsftp
0 上一章(http://www.cnblogs.com/souvenir/p/3875934.html)我们完成了对远程工具VNC的安装配置,接下来我们将安装另外一个常用工具:VSFTP. vsft ...
随机推荐
- spi can't create GMem lock
管理员身份启动cmd,输入下方命令 netsh winsock reset Successfully之后重启电脑就解决了
- 未能加载文件或程序集“MySql.Web.v20, Version=6.9.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或它的某一个依赖项。系统找不到指定的文件
未能加载文件或程序集“MySql.Web.v20, Version=6.9.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或它的某一个依赖 ...
- Python发送邮件(支持中文)
# -*- coding: utf-8 -*- from email.header import Header from email.mime.text import MIMEText import ...
- hive中分析函数window子句
hive中有些分析函数功能确实很强大,在和sum,max等聚合函数结合起来能实现不少功能. 直接上代码演示吧 原始数据 channel1 2016-11-10 1 channel1 2016-11-1 ...
- HttpClient接口测试之会话保持
HttpClient接口测试之会话保持 HttpClient4.X自带会话保持功能,使用同一个HttpClient未关闭的连接即可保持登陆会话,如果多个HttpClient想要使用一个登陆会话 ...
- cookie 和session 的区别
假如我填好了淘宝的用户名密码,点击登录,浏览器客户端像服务器端发送请求,这时服务器端看这个用户是第一次登陆,session会让客户端这个浏览器生成个cookie,并给cookie一个session i ...
- 如何正确建立MYSQL数据库索引
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...
- [转]Redmine 配置163邮箱
redmine的邮件发送功能还是很有用的.像项目有更新啦,任务分配啦,都能邮件发送的相关责任人.我自己在linux服务器上安装并启动了redmine后,邮件一直发送了不了.查了网上的资料,都是讲修改下 ...
- myeclicps开发web时候复制一个工程改名字后执行出现404错误
当部署的时候会出现如下的警告,此时请按照如下的方法解决: 1.选择要运行的工程,右击-->properties-->在上边的搜索框中搜索web,选中web,将Web Context-roo ...
- transform初学习
1.什么是transform? transform主要用于形变,位移和旋转,可用于动画. p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: jus ...