文档章节

Zookeeper 01. 集群搭建与使用

机器学习小蜜蜂
 机器学习小蜜蜂
发布于 2016/09/19 10:07
字数 1221
阅读 29
收藏 2

Zookeeper 部署

Zookeeper 有两种运行模式:单机模式和集群模式。下面分别介绍:单机模式、集群模式以及伪集群模式这三种部署方式。

前置

  • Java 运行环境
  • Zookeeper 安装包, 解压
  • 设置环境变量
export ZOOKEEPER_HOME=/Users/fandennis/Documents/Land/codes/zk/zookeeper346
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

集群模式

1.配置:主机名称到IP地址映射配置(/etc/hosts)

192.168.0.179   slave-01  
192.168.0.178   slave-02  
192.168.0.177   slave-03

2.修改ZooKeeper配置文件

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper/
clientPort=2181
server.1=slave-01:2888:3888
server.2=slave-02:2888:3888
server.3=slave-03:2888:3888

因为各集群的配置一样,可以采用 git 管理配置文件.

参数说明:

clientPort: the port at which the clients will connect

server.id = host:port1:port2
id: Server ID. 用来标识该机器在集群中的机器序号. 该 id 配置在 dataDir 目录下的 myid 文件中. id 范围:1~255
host:这个服务器的 ip 地址
port1: 这个服务器与集群中的 Leader 服务器交换信息的端口
port2: 执行选举时服务器相互通信的端口

3.远程复制分发安装文件以及配置文件

先在 slave-01 配置完成 zookeeper,然后将配置好的安装文件远程拷贝到集群中的各个节点对应目录

cd /home/land/installation/  
scp -r zookeeper-3.3.4/ land@slave-02: /home/land/installation/
scp -r zookeeper-3.3.4/ land@slave-03: /home/land/installation/

4.设置myid

land@slave-01:echo "1" > /var/lib/zookeeper/myid  
land@slave-02:echo "2" > /var/lib/zookeeper/myid  
land@slave-03:echo "3" > /var/lib/zookeeper/myid

5.启动 Zookeeper 集群的每个结点

land@slave-01:~/installation/zookeeper-3.3.4$ bin/zkServer.sh start  
land@slave-02:~/installation/zookeeper-3.3.4$ bin/zkServer.sh start  
land@slave-03:~/installation/zookeeper-3.3.4$ bin/zkServer.sh start

通常如下:

➜  zookeeper346 zkServer.sh start zk1.cfg   
JMX enabled by default
Using config: /Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../conf/zk1.cfg
Starting zookeeper ... STARTED

6.验证服务器

服务端验证

➜  conf zkServer.sh status zk1.cfg
JMX enabled by default
Using config: /Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../conf/zk1.cfg
Mode: follower
➜  conf zkServer.sh status zk2.cfg
JMX enabled by default
Using config: /Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../conf/zk2.cfg
Mode: leader
➜  conf zkServer.sh status zk3.cfg
JMX enabled by default
Using config: /Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../conf/zk3.cfg
Mode: follower

客户端验证

➜  conf zkCli.sh -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181
2016-09-19 09:53:30,439 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2016-09-19 09:53:30,446 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=172.22.32.80
2016-09-19 09:53:30,447 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_92
2016-09-19 09:53:30,449 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2016-09-19 09:53:30,449 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre
2016-09-19 09:53:30,449 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../build/classes:/Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../build/lib/*.jar:/Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../lib/slf4j-log4j12-1.6.1.jar:/Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../lib/slf4j-api-1.6.1.jar:/Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../lib/netty-3.7.0.Final.jar:/Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../lib/log4j-1.2.16.jar:/Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../lib/jline-0.9.94.jar:/Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../zookeeper-3.4.6.jar:/Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../src/java/lib/*.jar:/Users/fandennis/Documents/Land/codes/zk/zookeeper346/bin/../conf:
2016-09-19 09:53:30,449 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/Users/fandennis/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
2016-09-19 09:53:30,449 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/var/folders/3z/wwbzv0_961b112x2nxff6_c00000gn/T/
2016-09-19 09:53:30,449 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2016-09-19 09:53:30,449 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Mac OS X
2016-09-19 09:53:30,449 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=x86_64
2016-09-19 09:53:30,450 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=10.10.3
2016-09-19 09:53:30,450 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=fandennis
2016-09-19 09:53:30,450 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/Users/fandennis
2016-09-19 09:53:30,450 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/Users/fandennis/Documents/Land/codes/zk/zookeeper346/conf
2016-09-19 09:53:30,451 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@69663380
Welcome to ZooKeeper!
2016-09-19 09:53:30,485 [myid:] - INFO  [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@975] - Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2016-09-19 09:53:30,593 [myid:] - INFO  [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@852] - Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session
2016-09-19 09:53:30,604 [myid:] - INFO  [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x157402315f40001, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: 127.0.0.1:2181(CONNECTED) 0] 

单机模式

配置文件

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper/
clientPort=2181

无需配置:server.id=host:port:port

伪集群模式

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper/zkn
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

和集群方式区别不大,无非在一台机器采用多个端口号来模拟。同时dataDir需要配置多个文件夹。

可以看到:Zookeeper 物理文件目录,如下图所示。

.
├── zk1
│   ├── myid
│   ├── version-2
│   │   ├── acceptedEpoch
│   │   ├── currentEpoch
│   │   └── snapshot.0
│   └── zookeeper_server.pid
├── zk2
│   ├── myid
│   ├── version-2
│   │   ├── acceptedEpoch
│   │   └── currentEpoch
│   └── zookeeper_server.pid
└── zk3
    ├── myid
    ├── version-2
    │   ├── acceptedEpoch
    │   ├── currentEpoch
    │   └── snapshot.0
    └── zookeeper_server.pid

常用命令

客户端脚本

© 著作权归作者所有

机器学习小蜜蜂
粉丝 1
博文 2
码字总数 2270
作品 0
长宁
程序员
私信 提问
Zookeeper分布式集群安装与配置(CentOS6)

Zk是一个分布式服务框架,提供了协调分布式应用的基本服务,zk集群主要是保证服务的可靠性和稳定性,介绍一下集群的安装与配置,在安装之前需要安装好jdk,jdk的安装请网上查找相应的方法 Du...

chaun
2015/08/14
0
0
Zookeeper完全分布式集群的搭建

Zookeeper完全分布式集群的搭建 一、集群模式 1、单机模式 在zoo.cfg中只配置一个server.id就是单机模式了。 这种模式下,如果当前主机宕机,那么所有依赖于当前zookeeper服务工作的其他服务...

星汉
2018/04/27
0
0
Java之品优购部署_day01(3)

2.2 搭建 Zookeeper 集群 2.2.1 搭建要求 真实的集群是需要部署在不同的服务器上的,但是在我们测试时同时启动十几个虚拟机 内存会吃不消,所以我们通常会搭建伪集群,也就是把所有的服务都搭...

我是小谷粒
2018/07/06
0
0
ZooKeeper的伪分布式集群搭建以及真分布式集群搭建

zk集群的一些基本概念 zookeeper集群搭建: zk集群,主从节点,心跳机制(选举模式) 配置数据文件 myid 1/2/3 对应 server.1/2/3 通过 zkCli.sh -server [ip]:[port] 命令检测集群是否配置成...

ZeroOne01
2018/04/24
0
0
基于zookeeper+leveldb搭建activemq集群实现高可用

自从activemq5.9.0开始,activemq的集群实现方式取消了传统的Master-Slave方式,增加了基于zookeeper+leveldb的实现方式,其他两种方式:目录共享和数据库共享依然存在。本文主要阐述基于zoo...

chaun
2015/08/17
0
2

没有更多内容

加载失败,请刷新页面

加载更多

在阿里云ecs服务器(linux之centos系统)安装调试nginx

购买阿里云ecs服务器实例 由于这里只是测试,我们就随便买一个(当然我就选最便宜的了,这里的抢占式实例测试完可以直接释放) 选择centos7.6镜像 点击下一步:网络和安全组 接下来选中开通h...

祖达
昨天
2
0
【阴阳师】真蛇10层记录

蛇切黑体系 追月神 散件一速,速度越高越好(220+) 镰鼬 招财二速,速度211以上; 山兔 火灵三速,速度180-200均可; 丑女 心眼四速,速度170左右即可; 大蛇 蚌精暴击套。速度高于阴阳师即...

Areya
昨天
5
0
js动态设置元素高度

this.$refs.xxx.style.height= this.contentHeight; 元素需要绑定

Carbenson
昨天
3
0
今天的学习

今天学到了ci框架中的查询语句的where条件语句: 1、$this->db->select('')->from('')->where('id = ??')->get()->result_array();2、$this->db->select('')->from('')->where('id', '??'......

墨冥
昨天
2
0
MySQL在高并发下的订单撮合、系统使用、共享锁与排他锁保证数据一致性

前序 距离上次择文发表,两月余久。2018年也即将要结束了,目前的工作依然是与区块链应用相关的,也很荣幸在9月初受邀签约出版暂名为《区块链以太坊DApp实战开发》一书,预计在明年年初出版。...

我最喜欢三大框架
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部