`
maosheng
  • 浏览: 568235 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Zookeeper 集群搭建

阅读更多
Zookeeper:

功能:

1.类似JNDI的命名服务
2.实现分布式系统中的配置服务
3.提供简单好用的分布式同步服务
4.提供简单好用的分布式协调框架
5.可以作为一个简单的可靠的消息队列

ZK应用场景:命名服务
    ZK创建一个节点后,节点的路径就是全局唯一的,可以作为全局名称使用

ZK应用场景:分布式锁
    ZK能保证数据的强一致性,用户任何时候都可以相信集群中每个节点的数据都是相同的,一个用户创建一个节点作为锁,另一个用户检查该节点,如果存在,代表别的用户已经锁住,如果不存在,则可以创建一个节点,代表拥有一个锁


特点:

1.原子性:更新要么成功,要么失败,不会出现部分更新
2.可靠性:一旦数据更新成功,将一直保持,知道新的更新
3.单一性:无论客户端连接哪一个server,都会看到同一个视图
4.及时性:客户端会在一个确定的时间内得到更新的数据
5.等待无关:慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待
6.顺序一致性:按照客户端发送请求的顺序更新数据,包括全局有序和偏序的两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发布者发布,a必将排在b前面


一、官方网站下载zookeeper-3.4.6.tar.gz

    http://www.apache.org/dyn/closer.cgi/zookeeper/

二、将下载得到的zookeeper-3.4.6.tar.gz放到指定的目录中,自己统一放在了/usr/appdata/zookeeper-3.4.6/下,tar解压缩即可

   #tar -zxvf zookeeper-3.4.6.tar.gz

三、设置环境变量:
    
    为了方便运行zkServer.sh脚本,我们将zookeeper的bin路径加入到/etc/profile中,作为一个全局变量进行输出到PATH中

     #vi /etc/profile

     ZOOKEEPER_HOME=/usr/appdata/zookeeper-3.4.6
     export ZOOKEEPER_HOME
     export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

     #source /etc/profile

     修改完成之后运行source /etc/profile使修改生效

四、设置host

    #vi /etc/hosts

    172.16.15.13 server1
    172.16.15.14 server2
    172.16.15.15 server3

    增加集群服务器的IP和host的对应关系到/etc/hosts(所有节点都同样增加)
       

五、建立zookeeper配置文件(可以先在一个节点上配置,后期直接复制到其他节点即可)
   
    进入到zookeeper的conf/中,将zoo_sample.cfg拷贝成zoo.cfg:

    #cp zoo_sample.cfg zoo.cfg

    #vi zoo.cfg

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/zookeeper/local/var/zookeeper/data
dataLogDir=/home/zookeeper/local/var/zookeeper/log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888

    端口2181
    设置dataDir为一个指定目录存放zookeeper的协调数据。最后添加集群中的节点,根据server.X的号码在相应的节点上的dataDir下建立myid文件,输入自身的“X”作为内容即可,比如server1节点上的myid只输入1即可。

  
   #cd /home/zookeeper/local/var/zookeeper/data
   #echo "1" >> myid
  
   server1节点上的myid输入1,server2节点上的myid输入2,server3节点上的myid输入3

六、复制zookeeper-3.4.6到其他各节点
    
    这里使用scp -r zookeeper-3.4.6/ hadoop@server2:实现,注意每个节点的dataDir下的myid文件要修改成自身的Server-X号码


七、运行zkServer.sh
   
    #zkServer.sh start

    在所有节点上分别运行zkServer.sh start命令

八、查看运行状态

    #zkServer.sh status

    JMX enabled by default
    Using config: /usr/appdata/zookeeper-3.4.6/bin/../conf/zoo.cfg
    Mode: follower


九、配置开机启动zookeeper文件

#cd /etc/rc.d/init.d
#touch zookeeper
#chmod +x zookeeper
#vi zookeeper

添加如下内容

#! /bin/sh
# chkconfig: 2345 10 90
# description: zookeeper

ZOOKEEPER_PATH=/usr/appdata/zookeeper-3.4.6/bin/

case "$1" in
     start)
echo "start zookeeper service..."
sh ${ZOOKEEPER_PATH}/zkServer start
;;
     stop)
echo "stop zookeeper service..."
sh ${ZOOKEEPER_PATH}/zkServer stop
;;
     restart)
echo "restart zookeeper service..."
sh ${ZOOKEEPER_PATH}/zkServer restart
;;   
     status)
echo "zookeeper status"
sh ${ZOOKEEPER_PATH}/zkServer status
;; 
     *)
echo "require start|stop|status|restart"
exit1
;;
esac

添加到开机启动服务

chkconfig --add zookeeper
chkconfig zookeeper on
chkconfig --list              #查看开机启动的服务


然后就可以使用
#service zookeeper start|stop|restart|status
启动|停止|重启|状态  啦


【Docker环境搭建Zookeeper集群】 

构建zk集群:

主机A:

docker run -d \
--name=zk1 \
--net=host \
-e SERVER_ID=1 \
-e ADDITIONAL_ZOOKEEPER_1=server.1=localhost:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_2=server.2=localhost:2889:3889 \
-e ADDITIONAL_ZOOKEEPER_3=server.3=localhost:2890:3890 \
-e ADDITIONAL_ZOOKEEPER_4=clientPort=2181 \
zookeeper:latest

主机B:

docker run -d \
--name=zk2 \
--net=host \
-e SERVER_ID=2 \
-e ADDITIONAL_ZOOKEEPER_1=server.1=localhost:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_2=server.2=localhost:2889:3889 \
-e ADDITIONAL_ZOOKEEPER_3=server.3=localhost:2890:3890 \
-e ADDITIONAL_ZOOKEEPER_4=clientPort=2182 \
zookeeper:latest

主机C:

docker run -d \
--name=zk3 \
--net=host \
-e SERVER_ID=3 \
-e ADDITIONAL_ZOOKEEPER_1=server.1=localhost:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_2=server.2=localhost:2889:3889 \
-e ADDITIONAL_ZOOKEEPER_3=server.3=localhost:2890:3890 \
-e ADDITIONAL_ZOOKEEPER_4=clientPort=2183 \
zookeeper:latest


查看zk集群:

echo stat | nc 127.0.0.1 2181

echo stat | nc 127.0.0.1 2182

echo stat | nc 127.0.0.1 2183



分享到:
评论

相关推荐

    Zookeeper集群搭建.doc

    Zookeeper集群搭建是一个重要的任务,尤其在分布式系统中,它作为协调服务,为高可用性和数据一致性提供了基础。Zookeeper是Apache的一个开源项目,用于处理分布式应用中的命名服务、配置管理、集群同步、选举等功能...

    zookeeper 集群搭建1

    【Zookeeper集群搭建详解】 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、...

    zookeeper集群搭建脚本

    此附件是快速搭建zookeeper集群的脚本,方便灵活,减少了自己一大堆复杂的操作,像运行服务一样执行几条start,stop等命令即可轻松完成集群搭建。

    zookeeper集群搭建

    "zookeeper集群搭建" ZooKeeper是一种广泛使用的分布式协调服务,能够提供高性能、可靠性强的分布式应用程序协调服务。本文将从 ZooKeeper 的安装、配置、启动、停止和使用等方面,对 ZooKeeper 的基本知识进行...

    Kafka和Zookeeper集群搭建

    【Kafka和Zookeeper集群搭建】是IT领域中常见的分布式系统构建过程,主要涉及两个核心组件:Apache Kafka和Apache ZooKeeper。Kafka是一款高吞吐量的分布式消息系统,而ZooKeeper则是一个分布式服务框架,常用于...

    zookeeper集群搭建手册配置指导

    Zookeeper集群搭建手册配置指导 Apache ZooKeeper是一个分布式协调服务,广泛应用于分布式系统,如大数据处理、服务治理、配置管理等。它提供了一种简单、高效且可靠的分布式数据一致性解决方案。在搭建Zookeeper...

    centos7下Redis哨兵集群和kafka集群和zookeeper集群搭建

    centos7下Redis哨兵集群和kafka集群和zookeeper集群搭建 http://blog.csdn.net/gaowenhui2008/article/details/71516901 https://cwiki.apache.org/confluence/display/KAFKA/Clients

    linux下zookeeper集群环境搭建详细图文教程.docx

    linux下zookeeper集群环境搭建详细图文教程,简单易使用

    Zookeeper集群搭建详细文档

    详细介绍了Zookerper注册中心集群搭建的准备工作以及搭建的详细步骤,并且模拟了集群的一些常见异常,可以使学习Zookeeper的同志们通过阅读本篇文档,能够快速上手对Zookeeper的搭建使用

    windows环境下zookeeper集群搭建

    在Windows环境下搭建Zookeeper集群是一项基础且重要的任务,特别是在分布式系统和大数据领域。Zookeeper作为一个高可用的分布式协调服务,广泛应用于配置管理、命名服务、分布式锁和集群管理等场景。下面将详细介绍...

    zookeeper linux集群搭建流程

    zookeeper Linux 集群搭建流程 ZooKeeper 是一个广泛使用的分布式协调服务,主要用于管理和协调分布式系统中的各个节点。Linux 集群搭建是 ZooKeeper 的一种常见应用场景,本文将详细介绍 ZooKeeper Linux 集群搭建...

    面试官:Zookeeper集群怎么搭建?.doc

    "Zookeeper集群搭建" Zookeeper集群是一种分布式应用程序协调服务,用于管理和协调分布式系统中的应用程序。下面是 Zookeeper集群的搭建方式和角色介绍: 一、Zookeeper集群模式 Zookeeper集群有三种搭建方式:...

    zookeeper集群

    ZooKeeper集群搭建和管理 ZooKeeper是一种广泛使用的分布式协调服务,常用于分布式系统中的服务注册、配置管理、群策略管理等方面。下面将从 ZooKeeper 集群的搭建、配置、管理等方面进行详细的知识点介绍。 一、...

    集群搭建(zookeeper集群+solr集群)

    2. **Zookeeper集群搭建**:按照官方文档安装配置Zookeeper集群,确保集群稳定运行。 3. **SolrCloud集群配置**:在每台Solr服务器上安装Solr,并配置与Zookeeper集群的连接。通过Zookeeper提供的界面配置SolrCloud...

Global site tag (gtag.js) - Google Analytics