服务器 1:192.168.1.81  端口:2181、2881、3881

服务器 2:192.168.1.82  端口:2182、2882、3882

服务器 3:192.168.1.83  端口:2183、2883、3883

#创建相应的用户

切换到 root 用户权限,执行以下命令:

# useradd –m zk –G zk –s /bin/bash

# password zk

# su – zk

1、 修改操作系统的/etc/hosts 文件,添加 IP 与主机名映射:

# zookeeper cluster servers

192.168.1.81   zookeeper-01

192.168.1.82   zookeeper-02

192.168.1.83   zookeeper-03

2、 下载或上传 zookeeper-3.4.6.tar.gz 到/home/zk/zookeeper 目录:

$ cd /home/zk/zookeeper

$ wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

3、 解压 zookeeper 安装包,并按节点号对 zookeeper 目录重命名:

$ tar -zxvf zookeeper-3.4.6.tar.gz

服务器 1:

$ mv zookeeper-3.4.6 node-01

服务器 2:

$ mv zookeeper-3.4.6 node-02

服务器 3:

$ mv zookeeper-3.4.6 node-03

4、 在各 zookeeper 节点目录下创建以下目录:

$ cd /home/zk/zookeeper/node-0X  (X 代表节点号 1、2、3,以下同解)

$ mkdir data

$ mkdir logs

5、 将 zookeeper/node-0X/conf 目录下的 zoo_sample.cfg 文件拷贝一份,命名为 zoo.cfg:

$ cp zoo_sample.cfg zoo.cfg

6、 修改 zoo.cfg 配置文件:

zookeeper/node-01 的配置(/home/zk/zookeeper/node-01/conf/zoo.cfg)如下:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/zk/zookeeper/node-01/data

dataLogDir=/home/zk/zookeeper/node-01/logs

clientPort=2181

server.1= zookeeper-01:2881:3881

server.2= zookeeper-02:2882:3882

server.3= zookeeper-03:2883:3883

zookeeper/node-02 的配置(/usr/local/zookeeper/node-02/conf/zoo.cfg)如下:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/zookeeper/node-02/data

dataLogDir=/usr/local /zookeeper/node-02/logs

clientPort=2182

server.1= zookeeper-01:2881:3881

server.2= zookeeper-02:2882:3882

server.3= zookeeper-03:2883:3883

zookeeper/node-03 的配置(/usr/local /zookeeper/node-03/conf/zoo.cfg)如下:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local /zookeeper/node-03/data

dataLogDir=/usr/local /zookeeper/node-03/logs

clientPort=2183

server.1= zookeeper-01:2881:3881

server.2= zookeeper-02:2882:3882

server.3= zookeeper-03:2883:3883

参数说明:

tickTime=2000

tickTime 这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每

个 tickTime 时间就会发送一个心跳。

initLimit=10

initLimit 这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper

服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长

能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服

务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。

syncLimit=5

syncLimit 这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少

个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒。

dataDir=/usr/local/zookeeper/node-01/data

dataDir顾名思义就是Zookeeper保存数据的目录,默认情况下Zookeeper将写数据的日志文件也保存在

这个目录里。

clientPort=2181

clientPort 这个端口就是客户端(应用程序)连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端

口接受客户端的访问请求。

server.A=B:C:D

server.1= zookeeper-01:2881:3881

server.2= zookeeper-02:2882:3882

server.3= zookeeper-03:2883:3883

A 是一个数字,表示这个是第几号服务器;

B 是这个服务器的 IP 地址(或者是与 IP 地址做了映射的主机名) ;

C 第一个端口用来集群成员的信息交换,表示这个服务器与集群中的 Leader 服务器交换信息的端口;

D 是在 leader 挂掉时专门用来进行选举 leader 所用的端口。

注意:如果是伪集群的配置方式,不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不

同的端口号

7、 在 dataDir=/usr/local/zookeeper/node-0X/data 下创建 myid 文件

编辑 myid 文件,并在对应的 IP 的机器上输入对应的编号。如在 node-01 上,myid 文件内容就是

1,node-02 上就是 2,node-03 上就是 3:

$ vi /usr/local/zookeeper/node-01/data/myid  ## 值为 1

$ vi /usr/local/zookeeper/node-02/data/myid  ## 值为 2

$ vi /usr/local /zookeeper/node-03/data/myid  ## 值为 3

8、 在防火墙中打开要用到的端口 218X、288X、388X

切换到 root 用户权限,执行以下命令:

# chkconfig iptables on

# service iptables start

编辑/etc/sysconfig/iptables

# vi /etc/sysconfig/iptables

如服务器 01 增加以下 3 行:

## zookeeper

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2881 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3881 -j ACCEPT

重启防火墙:

# service iptables restart

查看防火墙端口状态:

# service iptables status

9、启动并测试 zookeeper(要用 zookeeper 用户启动,不要用 root):

(1)使用zookeeper用户到/usr/local/zookeeper/node-0X/bin 目录中执行:

$ /usr/local/zookeeper/node-01/bin/zkServer.sh start

$ /usr/local/zookeeper/node-02/bin/zkServer.sh start

$ /usr/local/zookeeper/node-03/bin/zkServer.sh start

(2) 输入 jps 命令查看进程:

$ jps

1456 QuorumPeerMain

其中,QuorumPeerMain 是 zookeeper 进程,说明启动正常

(3) 查看状态: $ /usr/local/zookeeper/node-01/bin/zkServer.sh status

(4) 查看 zookeeper 服务输出信息:

由于服务信息输出文件在/usr/local/zookeeper/node-0X/bin/zookeeper.out

$ tail -500f zookeeper.out

10、停止 zookeeper 进程:

$ zkServer.sh stop

11、配置 zookeeper 开机使用 zookeeper用户启动:

编辑 node-01、node-02、node-03 中的/etc/rc.local 文件,分别加入:

su - zookeeper –c '/usr/local/zookeeper/node-01/bin/zkServer.sh start'

su - zookeeper -c '/usr/local/zookeeper/node-02/bin/zkServer.sh start'

su - zookeeper -c '/usr/local/zookeeper/node-03/bin/zkServer.sh start'

3、zookeeper 集群模式搭建的更多相关文章

  1. Zookeeper简介及单机、集群模式搭建

    1.zookeeper简介 一个开源的分布式的,为分布式应用提供协调服务的apache项目. 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 设计非常易于编程,它使用的是 ...

  2. zookeeper集群环境搭建详细图文教程

    zookeeper集群环境搭建详细图文教程 zhoubang @ 2018-01-02 [文档大纲] 友情介绍 软件环境 注意点 环境安装 1. 新建用于存储安装包以及软件安装的目录 2. 下载安装z ...

  3. centos7下安装zookeeper&zookeeper集群的搭建

    一.centos7下安装zookeeper 1.zookeeper 下载地址 https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 2.安装步骤 ...

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

    哈喽!大家好,我是小奇,一位不靠谱的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新 一.前言 作为一名Java拧螺丝选手,不必 ...

  5. zookeeper集群的搭建以及hadoop ha的相关配置

    1.环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 master作为active主机,data1作为standby备用机,三台机器均作为数据节点,yarn资源 ...

  6. Solr集群的搭建以及使用(内涵zookeeper集群的搭建指南)

    1   什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候 ...

  7. 大数据平台搭建-zookeeper集群的搭建

    本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容: 基础环境安装 zookeeper集群的搭建 kafka集群的搭建 hadoop/hbase集群的搭建 spark集群的搭建 flink集 ...

  8. [转]ZooKeeper 集群环境搭建 (本机3个节点)

    ZooKeeper 集群环境搭建 (本机3个节点) 是一个简单的分布式同步数据库(或者是小文件系统) ------------------------------------------------- ...

  9. Linux环境下ZooKeeper集群环境搭建关键步骤

    ZooKeeper版本:zookeeper-3.4.9 ZooKeeper节点:3个节点 以下为Linux环境下ZooKeeper集群环境搭建关键步骤: 前提条件:已完成在Linux环境中安装JDK并 ...

随机推荐

  1. angular学习2

    1.为了在angular里面使用bootstrap,可以如下操作 (1)停止正在运行的终端指令:ctrl+c (2)在终端里面输入:npm install bootstrap --save (3)在V ...

  2. jQuery-----隔行换色/全选全不选/

    隔行换色:              全选全不选:        分析:               1.页面加载   $(function(){})               2.获取所有奇数行数 ...

  3. proxy Static方式

    package com.xk.spring.kp04_aop.proxy.s1_static; public interface IStudentService { public void save( ...

  4. 在数据库中sql查询很快,但在程序中查询较慢的解决方法

    在写java的时候,有一个方法查询速度比其他方法慢很多,但在数据库查询很快,原来是因为程序中使用参数化查询时参数类型错误的原因 select * from TransactionNo, fmis_Ac ...

  5. <文档学习>AirSim/using_car.md Choosing Your Vehicle: Car or Multirotor

    如何在AirSim中使用汽车 默认情况下,AirSim中使用的车型为多转子multirotor. 如果你想使用汽车,那么只需在你的settings.json(https://github.com/Mi ...

  6. Django学习教程

    教程link:https://code.ziqiangxuetang.com/django/django-install.html 最好用虚拟环境学习django,用pycharm时要注意所选的pyt ...

  7. java service 安装

    sudo ln -s /var/services/video/video-live.jar /etc/init.d/live-service sudo chmod +x /var/services/v ...

  8. JavaScript入门经典(第四版)读书笔记

    第一部分 Web脚本编写与JavaScript语言的概念 1.document.lastModified()    ->    返回文档修改日期 2.<head>标签中的<sc ...

  9. Adobe® Reader®.插件开发

    Thank you for your interest in developing a plug-in for Adobe® Reader®. To build an Adobe Reader plu ...

  10. idea护眼设置

    idea护眼设置 看了很多intelliJ IDEA的配置文章,不知道大家为什么都不约而同的选择了黑色的那个主题,是很有感觉,很有程序猿的范.但是个人感觉对眼睛不太好,所以我还是用正常的框,建议大家把 ...