afox123 发表于 2015-9-7 10:16:41

Zookeeper集群搭建及基本使用

  
硬件环境

  CentOS 6.3 虚拟机2台
  集群最好是奇数台容灾性好一些,由于允许不过半节点挂点:
  比如5台允许挂掉2台,
  4台只能允许挂掉一台
  http://hi.baidu.com/ttovo/item/97add69b19f1ecbccd80e554
  CentOS虚拟机桥接方式
  环境准备:安装JDK,配置Hosts,配置Hostname
  Zookeeper官方 http://zookeeper.apache.org/
  
  storm集群工作交互图
  
  Nimbus(主节点,master)和Supervisor(工作节点,slave)之间的所有协调工作都是通过一个Zookeeper集群来完成。
  并且,nimbus进程和supervisor都是快速失败(fail-fast)和无状态的。所有的状态要么在Zookeeper里面, 要么在本地磁盘上。
  
  
  
  zk安装步骤
  
  1、下载解压:
  Wgethttp://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
  
   tar -xvzf zookeeper-3.4.5.tar.gz
  目录为/opt/soft/zookeeper-3.4.5
  
  在/etc/profile 里配置:
  JAVA_HOME
  ZOOKEEPER_HOME
  PATH
  2、创建data目录和myid
  创建data目录:
  $ZOOKEEPER/data,即/opt/soft/zookeeper-3.4.5/data
  创建myid:/opt/soft/zookeeper-3.4.5/data/myid
  Myid存server的id,可以是1,2,3…,必须唯一
  
  
  配置
  
  3、配置:
  创建文件 $ZOOKEEPER/conf/zoo.cfg
  修改zoo.cfg,增加如下:
  dataDir=/opt/soft/zookeeper-3.4.5/data
  clientPort=2181
  initLimit=10
  syncLimit=5
  tickTime=2000
  server.1=master:2888:3888
  server.2=slave1:2888:3888
  其中server.myid代表组成整个服务的机器,当服务启动时,会在数据目录下查找这个文件myid,这个文件中存有服务器的号码。下面会讲myid文件的配置。

  
  
  
  ZK集群
  Master/slave 模式
  Leader
  Flower
  Flower   
  …
  Leader选举
  Node:树形目录结构,每个目录是一个可存放数据的node
  持久化
  序列化持久化节点
  临时节点
  序列化临时节点
  Watches
  每个节点及子节点数据发生变化或被删除、或创建时触发对应事件
  及时性高

  
  
  启动,基本使用
  
  
  zkServer.sh start   启动
  zkServer.sh status   查看状态
  Master/slave 架构
  Leader选举,Leader负责整个集群Client消息接收,分发给每个Flower。

  
  
  Client操作:
  在任一台机器上
  zkCli.sh -server master:2181

  
  
  zk核心
  
  Node:树形结构,每个叶子是个节点
  4种节点类型
  Watches:事件,当节点及子节点数据变化时触发
  运维中需注意事项:
  1、连接数容易占满
  2、watches数
  

  
  
  补充 :
  

Storm的Nimbus和Supervisor之间通过Zookeeper进行协调
每个Supervisor和Zookeeper之间会存在一个临时目录,当Supervisor挂掉临时目录就会被删除,Nimbus就是通过检测这个目录来进行判断的,一旦挂掉,就会把Supervisor分配的任务重新分配给其他节点,从而保证作业不会受到影响。
  
  
  


zk集群Master/slave

只有一个leader 其他都是flower
leader负责整个zookeeper集群的消息接收和分发,接到消息后会广播到没一台flower节点上面

zookeeper部分leader,只有启动的时候才会选出,当leader挂掉了,就会重新选取一个


leader选举


Node    : 树行目录结构,每个目录是一个可存放数据的node
在做分布式配置的时候可以配置到这个节点上面,修改了立马生效

节点有四种:
持久化节点
序列化持久节点
临时节点:一旦节点挂掉,目录清除
序列化临时节点

watches
每一个节点及子节点数据发送变化或被删除,或创建时,触发对应的事件,及时性高。



进入Zookeeper的客户端命令
./zkCli.sh -server localhost:2181


zookeeper命令:
create
默认是持久化目录
-s : 序列化
-e:临时

创建
create/aa"aavalue";

创建序列化的临时目录
create -s -e 、temp “tem”
  
  

获取
get"aa"

更新
set /aa "newvalue"
  
  

zookeeper连接数

运维注意:

1.连接数容易占满
2.watches数
  
  
  
  
  
页: [1]
查看完整版本: Zookeeper集群搭建及基本使用