zookeeper搭建简单示例

ZooKeeper单机模式

zookeeper单机模式配置非常简单。

首先解压缩zookeeper-3.4.6.tar.gz,复制配置默认文件conf/zoo_sample.cfg更名为zoo.cfg。修改配置文件conf/zoo.cfg,内容如下所示:

  1. tickTime=2000
  2. dataDir=/mnt/app_data/zookeeper
  3. #如果配置了logdir则一定要新建该log路径,不然会报错
  4. dataLogDir=/mnt/app_log/zookeeper
  5. clientPort=2181
  6. initLimit=5
  7. syncLimit=2

dataDir为数据目录。dataLogDir为日志目录。路径不存在就得创建,不然报错。

配置完成,启动

  1. [[email protected] zookeeper-3.4.6]# bin/zkServer.sh start

启动成功后查看状态

[[email protected] ~]# /mnt/zookeeper-3.4.6/bin/zkServer.sh status
JMX enabled by default
Using config: /mnt/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: standalone

单机模式配置完成。

ZooKeeper集群模式

下面说明分布式模式的安装配置,过程如下所示:

第一步:主机名称到IP地址映射配置

ZooKeeper集群中具有两个关键的角色:Leader和Follower。集群中所有的结点作为一个整体对分布式应用提供服务,集群中每个结点之间都互相连接,所以,在配置的ZooKeeper集群的时候,每一个结点的host到IP地址的映射都要配置上集群中其它结点的映射信息。

例如,我的ZooKeeper集群中每个结点的配置,以slave-01为例,/etc/hosts内容如下所示:

  1. 192.168.1.152   slave-01
  2. 192.168.1.153   slave-02
  3. 192.168.1.154   slave-03

ZooKeeper采用一种称为Leader election的选举算法。在整个集群运行过程中,只有一个Leader,其他的都是Follower,如果ZooKeeper集群在运行过程中Leader出了问题,系统会采用该算法重新选出一个Leader。因此,各个结点之间要能够保证互相连接,必须配置上述映射。

ZooKeeper集群启动的时候,会首先选出一个Leader,在Leader election过程中,某一个满足选举算的结点就能成为Leader。

第二步:修改ZooKeeper配置文件

在其中一台机器(slave-01)上,解压缩zookeeper-3.4.6.tar.gz,修改配置文件conf/zoo.cfg,内容如下所示:

  1. tickTime=2000
  2. dataDir=/mnt/app_data/zookeeper
  3. #如果配置了logdir则一定要新建该log路径,不然会报错
  4. dataLogDir=/mnt/app_log/zookeeper
  5. clientPort=2181
  6. initLimit=5
  7. syncLimit=2
  8. server.1=slave-01:2888:3888
  9. server.2=slave-02:2888:3888
  10. server.3=slave-03:2888:3888

上述配置内容说明,可以参考http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html#sc_RunningReplicatedZooKeeper

第三步:远程复制分发安装文件

上面已经在一台机器slave-01上配置完成ZooKeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下。

第四步:设置myid

在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字,例如:

  1. slave-01[[email protected] zookeeper-3.4.6]# echo "1" > /mnt/app_data/zookeeper/myid
  2. slave-02[[email protected] zookeeper-3.4.6]# echo "2" > /mnt/app_data/zookeeper/myid

  3. slave-03[[email protected] zookeeper-3.4.6]# echo "3" > /mnt/app_data/zookeeper/myid

按照上述进行配置即可。

第五步:启动ZooKeeper集群

在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本,如下所示:

  1. [[email protected] zookeeper-3.4.6]# bin/zkServer.sh start

启动部分顺序,不过要各个节点全部启动完成后 bin/zkServer.sh status才正确。

如果启动正常如下

Using config: /mnt/zookeeper-3.4.6/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

但是查看状态的时候 bin/zkServer.sh status 报错如下:

[[email protected] zookeeper-3.4.6]# bin/zkServer.sh status

JMX enabled by default

Using config: /mnt/zookeeper-3.4.6/bin/../conf/zoo.cfg

Error contacting service. It is probably not running.

根据本次配置经验原因有二:

其一:可能是因为配置文件中指定的文件路径没有创建。

其二:防火墙没有关闭。关闭防火墙,使用service iptables stop 关闭防火墙 ,使用service iptables status确认。Centos7中的防火墙调整为firewalld,试一下systemctl stop firewalld关闭防火墙。

各个节点全部关闭,然后依次重启。查看状态。

1[[email protected] zookeeper-3.4.6]# bin/zkServer.sh status

JMX enabled by default

Using config: /mnt/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: leader

2[[email protected] zookeeper-3.4.6]# bin/zkServer.sh status

JMX enabled by default

Using config: /mnt/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: follower

3[[email protected] zookeeper-3.4.6]# bin/zkServer.sh status

JMX enabled by default

Using config: /mnt/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: follower

配置成功

时间: 2024-08-09 06:32:03

zookeeper搭建简单示例的相关文章

AMQP消息队列之RabbitMQ简单示例

前面一篇文章讲了如何快速搭建一个ActiveMQ的示例程序,ActiveMQ是JMS的实现,那这篇文章就再看下另外一种消息队列AMQP的代表实现RabbitMQ的简单示例吧.在具体讲解之前,先通过一个图来概览下: 1.添加Maven依赖 <!-- rabbitmq begin --> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit

ExtJS5 (一) 超简单整合到eclipse中,搭建简单的开发环境

个人一直欣赏大神们的唯美前端页面,而现在个人从事的是MIS系统等相关的开发,故决定学习ExtJS,目前最新版本是5.0,就从5.0开始吧. 作为java开发人员,自然而然的想在eclipse中搞个extjs的简单开发环境,以后再慢慢丰富,开始吧~ 第一步:从官网下载extjs,目前是5.0版本 第二步:用eclipse创建一个动态web工程 第三步:在工程的WebContent目录下创建一个文件夹,叫作ExtJS5. 第四步:解压从官网下载的extjs,解压之后,目录结构如下: 看一下根目录下的

.net DataExcel通信组件使用 搭建简单文件服务器

.net DataExcel通信组件使用 搭建简单文件服务器 使用.net dataexcel通信搭建一个简单的文件服务器. 通信简单介绍 1,通信使用TCP协议. 2,采用session机制,控制简单通信安全与连接限制防攻击. 3,采用开放协议包格.(32字节数据包) 4,采用网络断开,自动连接机制保证连接. 5,采用压缩机械压缩大数据(比如.net 里面datatable,dataset的传输). 6,采用事件机制,更容易,更符合.net开发习惯. 7,采用异步传输,较大的连接与并发. 8,

dubbo+zookeeper搭建笔记

参考博客: http://blog.csdn.net/u013142781/article/details/50396621#reply http://blog.csdn.net/u013142781/article/details/50395650 https://my.oschina.net/penngo/blog/494838 http://blog.csdn.net/morning99/article/details/40426133 内容基本来自小宝鸽的博客,部分小地方自己稍作修改.

elk+kafka+rsyslog+hadoop-hdfs+zookeeper搭建及其应用笔记

一:简述 本人之前搭建elk+redis架构收集日志,出现瓶颈,现使用新架构(els+kafka+rsyslog+hadoop-hdfs+zookeeper),解决方案. 二:搭建过程 A.rsyslogd服务 通过对 rsyslog官方文档 查看,得知 rsyslog对 kafka的支持是 v8.7.0版本后才提供的支持.通过 ChangeLog 也可以看出 V8.X的版本变化. 最新V8稳定版已经提供RPM包的Rsyslog-kafka插件了,直接yum安装即可,添加yum源: [rsysl

LVS的简单示例(一)

LVS的简单示例 1.使用NAT模型的TCP协议类型的lvs服务负载均衡一个php应用,如Discuz!论坛或者phpMyAdmin: 必要条件:三台主机(一个调度器两个服务器) 声明:172.16.1.11作为调度器,192.168.100.2和192.168.100.3作为服务器 第一步:给调度器配置一个网络适配器,配置其IP地址为192.168.100.1 第二步: 服务器配置(Real Server即RS): 配置两个RS的为同一网关: # route add default gw 19

网络基础、ftp任务(进度条、计算文件大小、断点续传、搭建框架示例)

一.网络基础 1.端口,是什么?为什么要有端口? 端口是为了将同一个电脑上的不同程序进行隔离. IP是找电脑:端口是找电脑上的应用程序: 端口范围:1 – 65535 :    1 - 1024 不要用  :  一般程序员用8000.8001…… 2.OSI  七层模型(记住哪七层) 应用层,使用软件:                 打开软件或网站 表示层,看到数据,如图片和视频:   生产原始数据 会话层,保持登录或链接状态:       应用偷偷携带一点其他数据: 令牌 19rRNAwf8

asp.net core系列 36 WebAPI 搭建详细示例

原文:asp.net core系列 36 WebAPI 搭建详细示例 一.概述 HTTP不仅仅用于提供网页.HTTP也是构建公开服务和数据的API强大平台.HTTP简单灵活且无处不在.几乎任何你能想到的平台都有一个HTTP库,因此HTTP服务可以覆盖广泛的客户端,包括浏览器,移动设备和传统的桌面应用程序. ASP.NET Web API 是一个框架,基于.NET Framework 或.NET Core 之上构建 Web API. 从本章开始学习Web API系列时,先从一个示例开始,下面使用A

【Apache Kafka】Kafka安装及简单示例

(一)Apache Kafka安装 1.安装环境与前提条件 ??安装环境:Ubuntu16.04 ??前提条件: ubuntu系统下安装好jdk 1.8以上版本,正确配置环境变量 ubuntu系统下安装好scala 2.11版本 安装ZooKeeper(注:kafka自带一个Zookeeper服务,如果不单独安装,也可以使用自带的ZK) 2.安装步骤 ??Apache基金会开源的这些软件基本上安装都比较方便,只需要下载.解压.配置环境变量三步即可完成,kafka也一样,官网选择对应版本下载后直接