zookeeper集群搭建

Posted coding_everyday

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zookeeper集群搭建相关的知识,希望对你有一定的参考价值。

        接触zookeeper集群已有很长很长一段时间了,zookeeper在项目中的使用相当的频繁,如Dubb服务、AMQ集群、大数据领域Hadoop等。zookeeper的集群创建非常简单,一直想写一篇文章来对集群使用的介绍,但一直没能抽出空,今天正好闲来无事,就重新实践一遍来整理记录,下文是基本的集群介绍。

zookeeper简介:

         zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

         zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

zookeeper集群安装:

1、首先从apahe官网下载zookeeper稳定版安装包:

http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

2、解压到指定安装目录,如:

命令:tar -zxvf zookeeper-3.4.9.tar.gz  -C /opt/


3、创建三个zookeeper实例目录

命令:mkdir -p /usr/local/zkCluster/zookeeper2181,2182,2183


4、复制刚解压好的zk目录下的所有内容到三个实例目录:

命令:for dir in /usr/local/zkCluster/zookeeper*;do cp -rf/opt/zookeeper-3.4.9/* $dir;done


5、将conf目录的zoo_sample.cfg重命名为zoo.cfg

命令:for dir in /usr/local/zkCluster/zookeeper*;do mv $dir/conf/zoo_sample.cfg$dir/conf/zoo.cfg;done


6、修改相关配置参数:

命令:for dir in /usr/local/zkCluster/zookeeper*;do

myport=`basename $dir|sed's/[a-zA-Z]*//g'`  

sed -r -i "

s@^\\s*clientPort.*@clientPort=$myport@;

s@^\\s*dataDir.*@dataDir=$dir/data@;

s@^\\s*dataLogDir.*@dataLogDir=$dir/logs@;

s@^\\s*server.1.*@server.1=192.168.253.252:2887:3887@;

s@^\\s*server.2.*@server.2=192.168.253.252:2888:3888@;

s@^\\s*server.3.*@server.3=192.168.253.252:2889:3889@;

" $dir/conf/zoo.cfg

done


注:该步一定要确定你的zoo.cfg配置文件里已存在标红的几项参数,没有要先创建,否则标红这几项替换不成功。

7、创建data、log目录

命令:for dir in /usr/local/zkCluster/zookeeper*;do  mkdir $dir/data  $dir/logs;done


8、创建myid文件

命令:for dir in /usr/local/zkCluster/zookeeper*;do touch $dir/data/myid;done


9、分别编辑myid文件,对应写入1,2,3节点序号

10、启动所有zk服务

命令:for dir in /usr/local/zkCluster/zookeeper*;do $dir/bin/zkServer.shstart;done


11、查看服务是否都已启动

命令:ps -ef|grep zookeeper



集群中关键点说明:

❶    server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

 

❷    hosts解析配置:

不同机器上的集群一定要配置hosts解析,否则会造成通讯失败。

 

至此,zookeeper的集群创建完毕。接下来可结合dubbo、AMQ、Hbase等进行实际使用。






以上是关于zookeeper集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop集群搭建 HDFS

Zookeeper -- Zookeeper 集群搭建 集群角色说明

搭建Zookeeper集群服务启动失败

zookeeper集群搭建方式

Kafka + Zookeeper集群搭建

Zookeeper集群搭建