Hadoop基础教程-第8章 Zookeeper(8.4 Zookeeper集群模式)(草稿)
来源:互联网 发布:网络教育如何报名 编辑:程序博客网 时间:2024/05/16 11:22
第8章 Zookeeper
8.4 Zookeeper集群模式
8.4.1 集群模式介绍
Running ZooKeeper in standalone mode is convenient for evaluation, some development, and testing. But in production, you should run ZooKeeper in replicated mode.
单机模式的ZooKeeper便于评估,开发和测试。但在生产中,我们应该以集群模式运行ZooKeeper。
一个 ZooKeeper 集群通常由一组机器组成,一般 3 台以上就可以组成一个可用的 ZooKeeper 集群了。每台集群的具有相同的Zookeeper配置文件。组成 ZooKeeper 集群的每台机器都会在内存中维护当前的服务器状态,并且每台机器之间都会互相保持通信。
重要的一点是,只要集群中存在超过一半的机器能够正常工作,那么整个集群就能够正常对外服务。
For replicated mode, a minimum of three servers are required, and it is strongly recommended that you have an odd number of servers. If you only have two servers, then you are in a situation where if one of them fails, there are not enough machines to form a majority quorum. Two servers is inherently less stable than a single server, because there are two single points of failure.
对于集群模式,至少需要三台服务器,强烈建议您拥有奇数个服务器。 如果您只有两台服务器,那么您处于这样的情况,如果其中一台服务器出现故障,则没有足够的机器来形成大多数法定人数。 两台服务器固然比单一服务器稳定性差,因为有两个单点故障。
8.4.2 集群模式配置
集群模式的Zookeeper配置同样参考官方文档:
http://zookeeper.apache.org/doc/r3.4.10/zookeeperStarted.html
集群模式所需的conf/zoo.cfg配置文件类似于单机模式下使用的配置文件,但有一些区别。
下面先在node1节点上进行配置:
[root@node1 zookeeper-3.4.10]# cd conf[root@node1 conf]# vi zoo.cfg [root@node1 conf]# cat zoo.cfg tickTime=2000initLimit=10syncLimit=5dataDir=/var/lib/zookeeperdataLogDir=/var/logclientPort=2181server.1=node1:2888:3888server.2=node2:2888:3888server.3=node3:2888:3888
The entries of the form server.X list the servers that make up the ZooKeeper service. When the server starts up, it knows which server it is by looking for the file myid in the data directory. That file has the contains the server number, in ASCII.
server.X的条目列出构成ZooKeeper服务的服务器。 当服务器启动时,它会通过查找数据目录中的文件myid来知道哪个服务器。 该文件包含服务器编号,以ASCII格式显示。
[root@node1 ~]# mkdir /var/lib/zookeeper[root@node1 ~]# echo 1 > /var/lib/zookeeper/myid[root@node1 ~]# cat /var/lib/zookeeper/myid 1[root@node1 ~]#
然后,将配置好的Zookeeper分发到其他两个节点
[root@node1 ~]# scp -r /opt/zookeeper-3.4.10/ node2:/opt[root@node1 ~]# scp -r /opt/zookeeper-3.4.10/ node3:/opt
在node2和node3节点上分别创建myid文件
[root@node2 ~]# mkdir /var/lib/zookeeper[root@node2 ~]# echo 2 > /var/lib/zookeeper/myid
[root@node3 ~]# mkdir /var/lib/zookeeper[root@node3 ~]# echo 3 > /var/lib/zookeeper/myid
在node2和node3节点上配置环境变量
[root@node2 ~]# vi /etc/profile.d/custom.sh[root@node2 ~]# cat /etc/profile.d/custom.sh#!/bin/bash#Java pathexport JAVA_HOME=/opt/jdk1.8.0_112export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib#Hadoop pathexport HADOOP_HOME=/opt/hadoop-2.7.3export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin#zookeeper pathexport ZOO_HOME=/opt/zookeeper-3.4.10export PATH=$PATH:$ZOO_HOME/bin[root@node2 ~]# source /etc/profile.d/custom.sh
vi /etc/profile.d/custom.sh
cat /etc/profile.d/custom.sh
[root@node3 ~]# vi /etc/profile.d/custom.sh[root@node3 ~]# cat /etc/profile.d/custom.sh #!/bin/bash#Java pathexport JAVA_HOME=/opt/jdk1.8.0_112export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib#Hadoop pathexport HADOOP_HOME=/opt/hadoop-2.7.3export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin#zookeeper pathexport ZOO_HOME=/opt/zookeeper-3.4.10export PATH=$PATH:$ZOO_HOME/bin[root@node3 ~]# source /etc/profile.d/custom.sh
8.4.3 集群模式启动
(1)启动
在每个节点执行命令zkServer.sh start
[root@node1 ~]# zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfgStarting zookeeper ... STARTED
[root@node2 ~]# zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfgStarting zookeeper ... STARTED
[root@node3 ~]# zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfgStarting zookeeper ... STARTED
(2)查看状态
在每个节点上执行命令zkServer.sh status
[root@node1 ~]# zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfgMode: follower
[root@node2 ~]# zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfgMode: leader
[root@node3 ~]# zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfgMode: follower
(3)通过jps命令查看进程
[root@node1 ~]# jps2346 Jps2255 QuorumPeerMain
[root@node2 ~]# jps2216 QuorumPeerMain2298 Jps
[root@node3 ~]# jps2320 Jps2265 QuorumPeerMain
- Hadoop基础教程-第8章 Zookeeper(8.4 Zookeeper集群模式)(草稿)
- Hadoop基础教程-第8章 Zookeeper(8.3 Zookeeper单机模式)(草稿)
- Hadoop基础教程-第8章 Zookeeper(8.1 Zookeeper介绍)(草稿)
- Hadoop基础教程-第8章 Zookeeper(8.2 Zookeeper下载与安装)(草稿)
- Hadoop基础教程-第8章 Zookeeper(8.5 Zookeeper内存数据库)(草稿)
- Hadoop基础教程-第5章 YARN:资源调度平台(5.3 YARN集群配置)(草稿)
- Hadoop基础教程-第5章 YARN:资源调度平台(5.4 YARN集群运行)(草稿)
- Hadoop基础教程-第13章 源码编译(13.1 Zookeeper源码编译)
- zookeeper部署(集群模式)
- Hadoop学习之zookeeper(集群安装)
- hadoop+zookeeper+hbase集群配置(一)
- hadoop+zookeeper+hbase集群配置(二)
- Hadoop安装(一)zookeeper集群安装
- Hadoop基础教程-第10章 HBase:Hadoop数据库(10.1 NoSQL介绍)(草稿)
- Hadoop基础教程-第10章 HBase:Hadoop数据库(10.2 HBase基本概念、框架)(草稿)
- Hadoop基础教程-第10章 HBase:Hadoop数据库(10.3 HBase安装与配置)(草稿)
- Hadoop基础教程-第10章 HBase:Hadoop数据库(10.4 NTP时间同步)(草稿)
- Hadoop基础教程-第10章 HBase:Hadoop数据库(10.5 HBase Shell)(草稿)
- 接口和抽象
- 树的直径
- java中import的简述
- ray marching shader 2:viewspace 转换 worldspace
- 【JZOJ 5205】【GDOI2018模拟7.6】仰望星空
- Hadoop基础教程-第8章 Zookeeper(8.4 Zookeeper集群模式)(草稿)
- 小米6连接android studio2.3出现Installation failed with message Failed to establish session.
- android sensor 框架分析---sensor native分析
- 【Linux4.1.12源码分析】邻居子系统实现分析
- 新浪博客搬家过来的东西
- thinkphp5.0l路由冲突原因及解决方法
- Interaction System入门之手柄按钮高亮及文字提示
- 华为机试,计算字符的个数
- 基于Lasagne实现限制玻尔兹曼机(RBM)