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集群搭建的主要内容,如果未能解决你的问题,请参考以下文章