搭建zookeeper管理集群

Zookeeper集群java

 

 

1、实验环境linux

 

Zookeeper集群环境安装过程详解apache

 

Zookeeper是一个分布式开源框架提供了协调分布式应用的基本服务它向外部应用暴露一组通用服务——分布式同步Distributed Synchronization命名服务Naming Service集群维护Group Maintenance简化分布式应用协调及其管理的难度提供高性能的分布式服务。ZooKeeper自己能够以单机模式安装运行不过它的长处在于经过分布式ZooKeeper集群一个Leader多个Follower),基于必定的策略来保证ZooKeeper集群的稳定性和可用性从而实现分布式应用的可靠性。服务器

Zookeeper安装和配置框架

Zookeeper有三种不一样的运行环境包括单机环境、集群环境和集群伪分布式环境。分布式

环境准备ide

spacer.gif c1f9735b64c1df812fa6b2f8dbdef16b.png

1、修改主机名性能

 

2、配置/etc/hosts文件测试

 

#vi /etc/hostsurl

spacer.gif c815ebbe2e06454d66c8fe3e98f49838.png

安装java jdk-7u65-linux-x64.gz

#tar zxf jdk-7u65-linux-x64.gz
#mv   jdk1.7.0_65/   /usr/local/java

编辑/etc/profile设置java的环境变量

 

#vi /etc/profile

 

export JAVA_HOME=/usr/local/java export PATH=$PATH:$JAVA_HOME/bin #source /etc/profile

 

#ln -s /usr/local/java/bin   /usr/bin
#java -version

spacer.gifc5eece4659539157fa44ac2cbd547db6.png

2、实验步骤

zk01zk02zk03主机上安装zookeeper

 

1、下载解压zookeeper

 

下载地址 http://www.apache.org/dyn/closer.cgi/zookeeper

 #mkdir /data

#cd/data 

#tar  zxf   zookeeper-3.4.10.tar.gz 

#mv   zookeeper-3.4.10    zookeeper 

2、配置环境变量/etc/profile

#echo "export ZOOKEEPER_HOME=/data/zookeeper" >> /etc/profile

 

#echo "export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf" >> /etc/profile

#source/etc/profile                //使变量生效

 

3、集群部署

Zookeeper集群环境下只要一半以上的机器正常启动了那么Zookeeper服务将是可用的。所以署Zookeeper最好使用奇数台机器这样若是有5台机器只要3台正常工做则服务将正常使用。下面咱们将对Zookeeper的配置文件的参数进行设置

 

#cd /data/zookeeper/conf

#cp     zoo_sample.cfg   zoo.cfg

zk01上配置

#vi    zoo.cfg

spacer.gifc19fc9aa9ce2c05746b3a16d69a4c383.png

tickTime: zookeeper中使用的基本时间单位, 毫秒值

 

dataDir: 数据目录. 能够是任意目录.

 

dataLogDir: log目录, 一样能够是任意目录. 若是没有设置该参数, 将使用和dataDir相同的设置. 这里没设置日志目 录。此方法不推荐

 

clientPort: 监听client链接的端口号

 

zk02上执行

 

#scp root@192.168.111.136:/data/zookeeper/conf/zoo.cfg/data/zookeeper/conf/

 

zk03上执行

 

#scproot@192.168.111.136:/data/zookeeper/conf/zoo.cfg /data/zookeeper/conf/

 

配置文件中server.id=host:port:port中的第一个port是从机器follower链接到主机器leader的端口号第二个port

 

是进行leadership选举的端口号。 接下来在dataDir所指定的目录下建立一个文件名为myid的文件文件中的内容只有一行

 

为本主机对应的id也就是server.id中的id。例如在服务器1中的myid的内容应该写入1 id 被称为Server ID, 用来标识 服务器在集群中的序号。同时每台 ZooKeeper 服务器上, 都须要在数据目录( dataDir 指定的目录) 下建立一个 myid 

 

, 该文件只有一行内容, 即对应于每台服务器的Server ID ZooKeeper 集群中, 每台服务器上的 zoo.cfg 配置文件内容一 致。 server.1  myid 文件内容就是 1。每一个服务器的 myid 内容都不一样, 且须要保证和本身的 zoo.cfg 配置文件中

server.id=host:port:port id 值一致。

 

id 的范围是 1 ~ 255

 

4.远程复制分发安装文件

 

zk01主机的zookeeper复制到另外两台主机中。 *主机修改datadir目录下myidid 集群模式中, 集群中的每台机器都须要 感知其它机器,  zoo.cfg 配置文件中, 能够按照以下格式进行配置, 每一行表明一台服务器配置。

server.id=host:port:port

 

server.1  myid 文件内容就是 "1"。每一个服务器的 myid 内容都不一样, 且须要保证和本身的 zoo.cfg 配置文件

 

"server.id=host:port:port"  id 值一致。

 

zk01为例

 

#mkdir  /data/zookeeper/data

 

#cd /data/zookeeper/data

 

#vi myid

 

1

 

zk02上执行

#scp root@localhost :/data/zookeeper/conf/zoo.cfg/data/zookeeper/conf/

zk03上执行

#scp root@localhost :/data/zookeeper/conf/zoo.cfg/data/zookeeper/conf/

5zk01,zk02,zk03启动ZooKeeper

zk01上执行以下操做

#cd       /data/zookeeper/zookeeper/bin

#./zkServer.sh start                                                   //启动zookeeper服务




 

4e0d70a072d4a83b8df5cb96643cb52b.png

在 zk02上执行以下操做

 45fec039a577e43b5d9325f79fb3eeda.png

在 zk03上执行以下操做

 47dba8e7fc28e4c6f76c9e1c432fc566.png

6、检查zookeeper启动是否成功 

zk01上操做

#jps

fee35728ff98e40314ed0afcd202a6ed.png

其中QuorumPeerMainzookeeper进程启动正常。 如上依次启动了全部机器上的Zookeeper以后能够经过ZooKeeper

 

脚原本查看启动状态包括集群中各个结点的角色或是Leader或是Follower),以下所示是在ZooKeeper集群中的每

 

个结点上查询的结果

在 zk01上执行 查看zookeeper状态

3b6e8ddb872e68774fd59989a894010b.png

在 zk02上执行

 deb74fb950180640b35b7d87a3c5a3c9.png

在 zk03上执行





030bd5001b6e2bb284271c0490495242.png

经过上面状态查询结果可见zk02是集群的Leader其他的两个结点是Follower 另外接到ZooKeeper集群上。对于客户

 

端来讲ZooKeeper是一个总体ensemble),链接到独享整个集群的服务因此你能够在任何一个结点上创建到服务

 

集群的链接例如

 

7、集群测试

 dd3aa470a55ff4543faeea85fbf7f6a5.png 

zookeeper集群搭建完毕!!!

相关文章
相关标签/搜索