文档章节

zookeeper单机多实例和分布式部署

小天120
 小天120
发布于 2014/01/17 18:15
字数 1174
阅读 954
收藏 15

1. 准备工作:

   1)需要linux环境,推荐用ubuntu的系统。学习的话使用oracle的virtual box安装虚拟机,网上找下安装文档就可以装好了,而生产环境一般都会装好的。ubuntu下载链接:

32位:http://mirrors.zju.edu.cn/ubuntu-releases//precise/ubuntu-12.04.3-server-i386.iso
或
64位:http://mirrors.hust.edu.cn/ubuntu-releases//precise/ubuntu-12.04.3-server-amd64.iso

    2) JDK:zookeeper需要java运行环境,这个建议1.6以上,配置好 JAVA_HOME 、CLASSPATH、 PATH 变量。

jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

环境变量配置,home目录下的.profile即可:

export JAVA_HOME="/usr/lib/jvm/jdk1.7.0_40"
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export ZOOKEEPER_HOME="/data/apache/zookeeper"
export PATH="$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin"

    3) zookeeper安装包:http://zookeeper.apache.org/releases.html 下载稳定版本,现在的版本是3.4.5

2. 各种解压,不多说,建议对解压后的目录(带有版本号的),建立软连接 zk ,方便后面的配置和升级。

    我解压后放在:  /data/apache/zookeeper下面,并修改文件权限为运行用户权限:

sudo chown -R zqgame:zqgame zookeeper

   zqgame:zqgame是运行zookeeper的用户和用户所在组,查看权限:

zqgame@develop-test-web:/data/apache$ ll
total 16
drwxr-xr-x  4 zqgame zqgame 4096 Jan 17 12:41 ./
drwxr-xr-x 11 root   root   4096 Dec 13 14:49 ../
drwxr-xr-x 11 zqgame zqgame 4096 Nov 20 15:50 hadoop-2.2.0/
drwxr-xr-x 12 zqgame zqgame 4096 Jan 17 12:56 zookeeper/
zqgame@develop-test-web:/data/apache$

3. 端口检查,通常使用的端口 2181,2888,3888 ,检查是否占用,占用则下面的配置中更改端口。

netstat -ano | grep 2181

4.单机多实例配置及启动:

#生成配置文件,配置文件名随便,这里是zoo.cfg
cp /data/apache/zookeeper/conf/zoo_sample.cfg  /data/apache/zookeeper/conf/zoo.cfg
vi /data/apache/zookeeper/conf/zoo.cfg

   配置文件内容:

tickTime=2000
initLimit=5
syncLimit=5
dataDir=/data/apache/zookeeper/data  # 目录需要手工建立,存放 zk 数据,主要是快照
clientPort=2181
# dataLogDir事务日志存放目录,最好配置,事务日志的写入速度严重影响zookeeper的性能
dataLogDir=/data/apache/zookeeper/datalog
server.1=192.168.130.170:2889:3889
server.2=192.168.130.170:2890:3890
server.3=192.168.130.170:2891:3891

   拷贝配置文件,生成三个配置文件:zoo-slave1.cfg: (另外两个 zoo-slave2.cfg 和 zoo-slave3.cfg)。

   zoo-slave1.cfg需要为dataDir和dataLogDir设置目录,改动内容如下:

dataDir=/data/apache/zookeeper/data/slave1
dataLogDir=/data/apache/zookeeper/datalog/slave1
clientPort=2182

   zoo-slave2.cfg :

dataDir=/data/apache/zookeeper/data/slave2
dataLogDir=/data/apache/zookeeper/datalog/slave2
clientPort=2183

  zoo-slave3.cfg :

dataDir=/data/apache/zookeeper/data/slave3
dataLogDir=/data/apache/zookeeper/datalog/slave3
clientPort=2184

如上配置相同的本机IP,不同的端口号,这里配置了三个实例

如何区分到底是第几个实例呢,就要有个id文件,名字必须是myid

echo "1" > /data/apache/zookeeper/data/slave1/myid
echo "2" > /data/apache/zookeeper/data/slave1/myid
echo "3" > /data/apache/zookeeper/data/slave1/myid

在三个窗口下迅速启动:

bin/zkServer.sh start zoo-slave1.cfg 
bin/zkServer.sh start zoo-slave2.cfg 
bin/zkServer.sh start zoo-slave3.cfg

查看zookeeper选出来的leader,通过下面的脚本,分别指定配置文件,就可以查看哪一个实例是leader:

bin/zkServer.sh status zoo-slave1.cfg

可以看下如下输出信息:

zqgame@develop-test-web:/data/apache/zookeeper$ bin/zkServer.sh status zoo-slave2.cfg 
JMX enabled by default
Using config: /data/apache/zookeeper/bin/../conf/zoo-slave2.cfg
Mode: leader

5、分布式部署:

    与单机多实例差不多,不过不用三个目录,只需要一个目录,一个配置文件,三个不同IP,分发在不同的IP上,仍然是不同的myid。假设我有三台独立机器,那么zoo.cfg(只需要一个默认的配置文件zoo.cfg)配置文件如下所示:

tickTime=2000
initLimit=5
syncLimit=5
dataDir=/data/apache/zookeeper/data  # 目录需要手工建立,存放 zk 数据,主要是快照
clientPort=2181
# dataLogDir事务日志存放目录,最好配置,事务日志的写入速度严重影响zookeeper的性能
dataLogDir=/data/apache/zookeeper/datalog
server.1=192.168.130.101:2888:3888
server.2=192.168.130.102:2888:3888
server.3=192.168.130.103:2888:3888

然后在三台机器上分别写入不同的myid:

#在192.168.130.101执行下面一条
echo "1" > /data/apache/zookeeper/data/myid
#在192.168.130.102执行下面一条
echo "2" > /data/apache/zookeeper/data/myid
#在192.168.130.103执行下面一条
echo "3" > /data/apache/zookeeper/data/myid

这样分别在三台机器迅速启动zookeeper,此时不需要指定配置文件,默认配置文件就是zoo.cfg:

bin/zkServer.sh start

查看启动后的状态:

bin/zkServer.sh status

进入zookeeper的shell客户端:

bin/zkCli.sh   #进入本机zookeeper的shell

进入指定机器的shell客户端:

bin/zkCli.sh -server 192.168.130.101

在查看启动状态有错误的情况下,稍等一会再查看,因为zookeeper启动后需要一点时间选出leader。以上配置和命令不了解的可见后续文章详细解释其用法。欢迎拍砖!

© 著作权归作者所有

小天120
粉丝 22
博文 28
码字总数 30705
作品 0
深圳
程序员
私信 提问
加载中

评论(1)

一只小桃子
一只小桃子
zookeeper单机多实例部署

主题介绍 介绍zookeeper单机多实例部署,更多适合于实验性质;ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,...

computer306
2018/04/22
0
0
Kafka 单机和分布式环境搭建与案例使用

Kafka 单机和分布式环境搭建与案例使用 目录(?)[+] 一、单机环境搭建 官方参考文章: http://kafka.apache.org/quickstart 1、下载和解压安装包 这里下载了zookeeper和kafaka两个安装包,下载...

yucaifu1989
2018/04/19
0
0
分布式技术 -- Zookeeper多机集群

Hello,朋友们。我又来了。昨天因为博主的电脑出了点问题,导致没更新文章。 这次带了的是zookeeper的单机集群,注意:是多机集群!多机集群!多机集群!(其实多机集群和单机集群原理一样的...

猫狗熊
09/07
17
0
Solr初探(6)——SolrCloud

Solr集群,即是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 。 当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高...

yuanlaijike
2018/04/12
0
0
solrCloud+tomcat+zookeeper集群配置

http://www.tuicool.com/articles/NNjAFr 概述: SolrCloud 是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。 它有几个特色功能: 1)集中式的...

毛朱
2015/05/06
324
2

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
10分钟前
0
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
12分钟前
2
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
14分钟前
1
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
20分钟前
3
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
44分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部