Zookeeper(一)

介绍

分布式协作。zookeeper是google的chubby项目开源实现。最早是hadoop的子项目。

小米米聊、淘宝Taokeeper其实类zookeeper。

Kafka使用zookeeper。消息发布订阅,其中zk就是用于检测节点崩溃。实现主题的发现,并且保持主题的生产和消费状态。

Hbase三段查找,Root-Region=》Meta Region=》Region(Table)。hbase的元数据信息放在HBase。HMaster挂掉,马上要节点恢复。

Hadoop。NameNode(SecondaryNameNode),HA Hadoop。一般情况下一个简单的hadoop集群,只有一个NameNode,如果NameNode挂掉,hadoop集群不可用。HA Haoop里面就要用到zk。

 

解决的问题

  1. Master节点管理。master高可用(挂掉以后,谁来负责工作),保证唯一。
  2. 配置文件管理。统一把配置文件存在zk,由zk统一分发。
  3. 发布与订阅。发布者(producer)将数据发布到zk节点上,供订阅者(consumer动态获取)。
  4. 分布式锁。分布式环境访问同一个资源,由第三方配锁实现。由zk统一进行协调,保证数据一致性。
  5. 集群的管理。worker集群监控。

 

安装与配置

1、下载

  wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

2、解压

  tar -xzvf zookeeper-3.4.9.tar.gz

3、修改配置

  ../conf/zoo_sample.cfg

# 会话时间,以毫秒为单位
tickTime=2000

# master与slave通讯时间,以秒为单位
initLimit=10

# master与slave心跳检测时间,以秒为单位
syncLimit=5

# 保存ZK快照和数据
dataDir=/usr/zookeeper/data/zk1

# 客户端端口
clientPort=2181

# service.1代表服务器表示,需在dataDir创建myid文件,内容是1;localhost表示master服务器;第一个端口表示通讯端口;第二个端口表示选举端口
service.1=localhost:2888:3888
service.2=localhost:2889:3889
service.3=localhost.2890:3890

 

常用API

启动

[root@localhost conf]# zkServer.sh start /usr/local/zookeeper-3.4.6/conf/zoo1.cfg

停止

[root@localhost conf]# zkServer.sh stop /usr/local/zookeeper-3.4.6/conf/zoo1.cfg

查看状态

[root@localhost conf]# zkServer.sh status /usr/local/zookeeper-3.4.6/conf/zoo1.cfg

 

1.     Master节点管理

posted @ 2018-04-22 21:49  huanStephen  阅读(100)  评论(0编辑  收藏  举报