您好,登录后才能下订单哦!
这篇文章主要介绍“zookeeper单机多实例和分布式部署方法介绍”,在日常操作中,相信很多人在zookeeper单机多实例和分布式部署方法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”zookeeper单机多实例和分布式部署方法介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
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。以上配置和命令不了解的可见后续文章详细解释其用法。欢迎拍砖!
到此,关于“zookeeper单机多实例和分布式部署方法介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。