第一步:环境准备
环境
版本
说明
JDK
1.8
zookeeper运行所需
centos
7
操作系统
需要配置好JDK的环境变量
zookeeper-3.4.9.tar.gz
3.4.9
zookeeper部署包
 
环境准备完毕之后,安装三台centos7的虚拟机,并分配好静态IP。
假设三台虚拟机分配的IP分别为:
10.0.90.52
10.0.90.53
10.0.90.54
 
配置Jdk环境变量,确保“java -version”命令能够执行成功,Jdk的环境变量配置不在赘述。
 
注意:为了确保zookeeper集群能够成功运行,确保万一,这里需要关闭一下centos的防火墙,关闭方法如下:
 
1. 安装iptables:
yum install -y iptables-services
2.关闭防火墙:
service iptables stop
3. 查看防火墙状态 service iptables status
这个状态说明已经关闭了,如下图所示:
 

 
第二步:Zookeeper配置
 
选取其中一台服务器,比如ip为10.0.90.52的服务器,将zookeeper-3.4.9.tar.gz 移动到
/usr/local 目录下。
 
解压压缩包: tar -zxvf zookeeper-3.4.9.tar.gz
解压成功之后,会有一个zookeeper-3.4.9文件夹,这个是zookeeper的部署包,个人习惯将将文件夹名改成zk(mv zookeeper-3.4.9 zk),下文都以zk表示zookeeper的部署包名。
 
修改配置文件:
 
zookeeper的配置文件都是放在 conf 目录下的,在这里,他有一个初始化的配置文件,zoo_simple.cfg,将其重命名为zoo.cfg。conf目录结构图如下:

接下来看看zoo.cfg:

 
zookeeper的配置文件注释还是很全的,这里重点讲一下集群的配置,上图红框部分,dataDir是zookeeper存放数据的目录,默认情况是指定的/tmp/zookeeper。
根据实际的工程需要指定目录的地址,这里我是放在了 /opt/data/zk 目录下。
 
注意:在配置zookeeper集群时,还需要增加一个步骤,在上文指定的dataDir目录下,新建文件myid,并在其中写入与其他不同服务器不同的并且唯一的 myid 的值。
比如,现在有三台服务器,10.0.90.52服务器myid的值是1,10.0.90.53服务器myid的值是2,10.0.90.54服务器myid的值是3。
 
 
集群成员配置:在zoo.cfg最下方,加上集群的成员,如下图所示:
到这里zookeeper部署包的配置基本完成了。
 
那么接下来只需要在其他两台机器上,进行类似的操作即可。可以方便的操作,直接将10.0.90.52上的zookeeper部署包scp到其他两台上,命令如下:
scp -r /usr/local/zk 10.0.90.53:/usr/local
 
切记,其他两台服务器的dataDir目录下的myid文件的创建与值的唯一。
 
第三步:启动集群
zookeeper的脚本和cli工具都是放在 bin 目录下的,如下图所示:

 
依次启动zookeeper,首先我先启动 10.0.90.52上的服务,执行命令:
sh zkServer.sh start
启动成功输出如下:

可以使用 “jps“命令查看正在运行的Java进程,执行 jps

如果jps命名输出中包含上图红框中的内容,则说明zookeeper服务启动成功。
 
还可以通过查看端口开启的方式,执行命令:
netstat -nltp | grep 2181
正常的执行结果如下图所示:

 
到此集群中的第一个成员,启动完毕,接着按照同样的方式启动第二个,第三个服务,到此集群的所有服务启动完毕。
 
查看集群状态
还是在bin目录下,执行命令:
sh zkServer.sh status
 
输出结果如下:

可以看到此服务已经成功集群,并正扮演者leader的角色,再看看其他两台的情况。
如下图所示,其他两台服务正扮演着follwers的角色。
通常来说,集群中第一个启动的服务,都会成为leader。
 
第四步:验证
 
zookeeper提供了cli工具,可以完成基本的操作,只需要输入简单的命令即可。
工具是:bin目录下的zkCli.sh
 
既然集群启动成功了,那么做一个小实验,分为两个步骤:
1. 在其中的一台服务,创建一个节点:test
2. 然后在其他两台服务中查看是否存在新创建的节点
 
 
执行 sh zkCli.sh
如下图所示,cli工具就是自动连接上本机localhost的zookeeper

 
查看节点: 输入命令 ls /

zookeeper节点是zookeeper服务中本身默认存在的节点,这里我们手动创建一个节点test,并赋值 ‘123’。
执行命令:create /test 123
结果如下图所示,节点创建成功。

转到集群中的其他服务,使用zkCli工具查看该节点是否存在。
结果如下图所示:
test节点存在,说明集群配置成功,集群中的各个服务保证了数据一致性。
 
 
到此zookeeper的全部集群配置完毕
 
常见错误解决
 
注意zookeeper启动出差 会在bin目录下生成一个zookeeper.out文件,里面记录了错误信息。
集群启动失败
2018-10-11 11:00:18,461 [myid:] - INFO [main:QuorumPeerConfig@124] - Reading configuration from: /usr/local/zk/bin/../conf/zoo.cfg
2018-10-11 11:00:18,484 [myid:] - INFO [main:QuorumPeer$QuorumServer@149] - Resolved hostname: 10.0.90.52 to address: /10.0.90.52
2018-10-11 11:00:18,484 [myid:] - INFO [main:QuorumPeer$QuorumServer@149] - Resolved hostname: 10.0.90.54 to address: /10.0.90.54
2018-10-11 11:00:18,485 [myid:] - INFO [main:QuorumPeer$QuorumServer@149] - Resolved hostname: 10.0.90.53 to address: /10.0.90.53
2018-10-11 11:00:18,485 [myid:] - INFO [main:QuorumPeerConfig@352] - Defaulting to majority quorums
2018-10-11 11:00:18,486 [myid:] - ERROR [main:QuorumPeerMain@85] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /usr/local/zk/bin/../conf/zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:144)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.lang.IllegalArgumentException: /tmp/zookeeper/myid file is missing
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:362)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:140)
... 2 more
Invalid config, exiting abnormally
 
dataDir目录下的myid文件缺失,需要创建myid文件,并赋值
 

zookeeper集群配置详细教程的更多相关文章

  1. Solr集群搭建详细教程(一)

    一.Solr集群的系统架构 注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. SolrCloud(solr 云)是So ...

  2. Solr集群搭建详细教程(二)

    注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. 之前步骤:Solr集群搭建详细教程(一) 三.solr集群搭建 注意 ...

  3. kafka集群与zookeeper集群 配置过程

    Kafka的集群配置一般有三种方法,即 (1)Single node – single broker集群: (2)Single node – multiple broker集群:    (3)Mult ...

  4. zookeeper集群配置与启动——实战

    1,准备: A:三台linxu服务器: 10.112.29.177 10.112.29.172 10.112.29.174 命令 hostname 得到每台机器的 hostname vm-10-112 ...

  5. java:zookeeper集群配置,dubbo

    1.zookeeper集群配置: 2.dubbo:(配置见视频)

  6. solrCloud+tomcat+zookeeper集群配置

    solrcolud安装solrCloud+tomcat+zookeeper部署  转载请出自出处:http://eksliang.iteye.com/blog/2107002 http://eksli ...

  7. zookeeper集群配置与启动

    摘要:Zookeeper是一个很好的集群管理工具,被大量用于分布式计算.如Hadoop以及Storm系统中.这里简单记录下Zookeeper集群环境的搭建过程.本文以Ubuntu 12.04 LTS作 ...

  8. Solr6.2.0 + zookeeper 集群配置

    zookeeper1 : 192.168.1.103zookeeper2 : 192.168.1.104zookeeper3 : 192.168.1.105solr1 : 192.168.1.106s ...

  9. zookeeper[5] zookeeper集群配置及伪集群配置

    参考:http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html 集群配置: 1.配置文件conf/zoo.cfg,除了单机模式的配置之外, ...

随机推荐

  1. JVM深入理解

    JVM深入理解 一.JVM介绍 JVM应用百度百科的原话是: JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过 ...

  2. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对   描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们 ...

  3. RESTful Web服务与“大”Web服务: 做出正确的建筑决策

    猜测:REST服务的不足之处 问题:WS- *与REST的争论 结论:REST在灵活性和控制方面得分更高,但需要大量的低级编码; WS- *提供更好的工具支持和编程接口方便,但引入了对供应商和开源项目 ...

  4. linux下进程绑定cpu情况查看的几种方法

    1.pidstat命令 查看进程使用cpu情况,如果绑定了多个cpu会都显示出来 pidstat -p `pidof 进程名` -t 1 2.top命令 (1)top (2)按f键可以选择下面配置选项 ...

  5. django xadmin多对多字段过滤(含filter的反向查询)

    要实现的功能: 继昨天实现拓展User模型使其得到其上级用户,今天要实现某些模型与用户多对多字段过滤功能. 功能描述:以用户指派功能为例,当前用户将文件指派给多个下级,修改前 程序会将所有用户都显示出 ...

  6. 【每日更新】【Redis学习】

    5. Redis订阅和发布模式和Redis事务 -------------------Redis事务------------------- 1.概念:     redis中的事务是一组命令的集合.事务 ...

  7. 处理ajax数据;数据渲染

    当我们用ajax把数据拿到前台,该如何渲染到页面,有以下几种方式: 一:使用字符串拼接的方法 声明一个空变量,然后拼接 var st=""; st+="<div&g ...

  8. Linux进程的实际用户ID和有效用户ID

    转自:https://blog.csdn.net/hulifangjiayou/article/details/47400943 在Linux中,每个文件都有其所属的用户和用户组,默认情况下是文件的创 ...

  9. hbase-数据恢复流程

    引用<https://blog.csdn.net/nigeaoaojiao/article/details/54909921> hlog介绍: hlog构建: 从图中可以看出,对于一个hl ...

  10. intel xeon家族介绍

    Xeon - Intel   < intel Xeon Past and current logos         Developer Intel Manufacturer Intel Typ ...