1.Zookeeper的下载与解压
     通过后面的链接下载Zookeeper:    Zookeeper下载
在此我们下载zookeeper-3.4.5
下载后解压至安装目录下,本文我们解压到目录:/opt/zookeeper-3.4.8

$:tar -xzvf zookeeper-3.4..tar.gz -C /opt/

如下图所示:
  

2.zookeeper的环境变量的配置:

为了今后操作方便,我们需要对Zookeeper的环境变量进行配置,方法如下:
在/etc/profile文件中加入如下的内容:

#set zookeeper environment

export ZOOKEEPER_HOME=/opt/zookeeper-3.4.
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

然后 source /etc/profile 刷新一下配置

-----------------------------------------------------------------------------------------------------------------------------------------

3.集群部署:
在Zookeeper集群环境下只要一半以上的机器正常启动了,那么Zookeeper服务将是可用的。因此,集群上部署Zookeeper最好使用奇数台机器,这样如果有5台机器,只要3台正常工作则服务将正常使用。
下面我们将对Zookeeper的配置文件的参数进行设置:
进入zookeeper-3.4.8/conf:

$:cp zoo_sample.cfg zoo.cfg

$:vim zoo.cfg

可参考下图配置:

注意上图的配置中master,slave1,slave2分别为主机名。

需要配置相应的hosts

192.168.1.213 master
192.168.1.216 slave1
192.168.1.217 slave2

在上面的配置文件中"server.id=host:port:port"中的第一个port是从机器(follower)连接到主机器(leader)的端口号,第二个port是进行leadership选举的端口号。

接下来在dataDir所指定的目录下创建一个文件名为zookeeper_server.pid的文件,文件中的内容只有一行,为本主机对应的id值,也就是上图中server.id中的id。例如:在服务器1中的zookeeper_server.pid的内容应该写入1。

4.远程复制分发安装文件
接下来将上面的安装文件拷贝到集群中的其他机器上对应的目录下:

root@master:~/zookeeper-3.4.$ scp -r zookeeper-3.4./ slave1:/opt/zookeeper-3.4.

root@master:~/zookeeper-3.4.$ scp -r zookeeper-3.4./ slave2:/opt/zookeeper-3.4.

拷贝完成后修改对应的机器上的zookeeper_server.pid。例如修改slave1中的zookeeper_server.pid如下:

root@slave1:~/opt/zookeeper-3.4.$ echo "" > data/myid

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

 haduser@master:~/opt/zookeeper-3.4.$ bin/zkServer.sh start

  haduser@slave1:~/opt/zookeeper-3.4.$ bin/zkServer.sh start

  haduser@slave2:~/opt/zookeeper-3.4.$ bin/zkServer.sh start

如下图所示:

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

如上依次启动了所有机器上的Zookeeper之后可以通过ZooKeeper的脚本来查看启动状态

 bin/zkServer.sh status

包括集群中各个结点的角色(或是Leader,或是Follower),如下所示,是在ZooKeeper集群中的每个结点上查询的结果:

通过上面状态查询结果可见,slave1是集群的Leader,其余的两个结点是Follower。

另外,可以通过客户端脚本,连接到ZooKeeper集群上。对于客户端来说,ZooKeeper是一个整体(ensemble),连接到ZooKeeper集群实际上感觉在独享整个集群的服务,所以,你可以在任何一个结点上建立到服务集群的连接,例如:


6.停止zookeeper进程:zookeeper-3.4.3/bin/zkServer.sh stop

-----------------------------------------------------------------------------------------------------------------------------------------

zookeeper的安装与部署-集群的更多相关文章

  1. DataStage 六、安装和部署集群环境

    DataStage序列文章 DataStage 一.安装 DataStage 二.InfoSphere Information Server进程的启动和停止 DataStage 三.配置ODBC Da ...

  2. Dubbo+zookeeper构建高可用分布式集群(二)-集群部署

    在Dubbo+zookeeper构建高可用分布式集群(一)-单机部署中我们讲了如何单机部署.但没有将如何配置微服务.下面分别介绍单机与集群微服务如何配置注册中心. Zookeeper单机配置:方式一. ...

  3. Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)

    Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本) Hive 安装依赖 Hadoop 的集群,它是运行在 Hadoop 的基础上. 所以在安装 Hive 之 ...

  4. HDP2.4安装(五):集群及组件安装

    HDP(Hortonworks Data Platform)是hortworks推出的100%开源的hadoop发行版本,以YARN 作为其架构中心,包含pig.hive.phoniex.hbase. ...

  5. 使用yum安装CDH Hadoop集群

    使用yum安装CDH Hadoop集群 2013.04.06 Update: 2014.07.21 添加 lzo 的安装 2014.05.20 修改cdh4为cdh5进行安装. 2014.10.22  ...

  6. ZooKeeper的安装与部署

    本文讲述如何安装和部署ZooKeeper. 一.系统要求 ZooKeeper可以运行在多种系统平台上面,表1展示了zk支持的系统平台,以及在该平台上是否支持开发环境或者生产环境. 表1:ZooKeep ...

  7. zookeeper、solrcloud、rediscluster集群解决方案

        集群解决方案 课程目标 目标1:说出什么是集群以及与分布式的区别 目标2:能够搭建Zookeeper集群 目标3:能够搭建SolrCloud集群 目标4:能够搭建RedisCluster集群 ...

  8. Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(四)

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  9. ZooKeeper环境搭建(单机/集群)(转)

    前提: 配置文件主要是在$ZOOKEEPER_HOME/conf/zoo.cfg,刚解压时为zoo_sample.cfg,重命名zoo.cfg即可. 配置文件常用项参考:http://www.cnbl ...

随机推荐

  1. java程序测试之字符流

    package filestream; import java.io.FileReader; import java.io.FileWriter; import java.io.FileNotFoun ...

  2. JS中都有哪些数据类型呢?

    js中有5种数据类型:Undefined.Null.Boolean.Number和String.还有一种复杂的数据类型Object,Object本质是一组无序的名值对组成的.

  3. CentOS 7 yum搭建 LAMP

    CentOS 7 搭建LAMP环境 1. Apache 安装 Apache 的软件包名称叫做httpd,因此安装Apache,使用以下命令 [root@localhost ~]# yum -y ins ...

  4. Ajax原理、优缺点及应用场景

    前言 Ajax的全称为Asynchronous JavaScript And Xml,是一种web客户端与服务器端异步通信的技术,如今,可以说是web开发人员必须掌握的的一项技能了.本文讲述了Ajax ...

  5. C#Redis 主从复制

    一.前戏 下面的列表清楚的解释了Redis Replication的特点和优势.    1). 同一个Master可以同步多个Slaves.    2). Slave同样可以接受其它Slaves的连接 ...

  6. H5缓存-Manifest

    在app中更新h5页面一直有缓存问题.默认什么都不做的情况下,app有一定的空间缓存页面.一开始更新之后会马上加载,等到app缓存空间上来之后更新就无法下载了.安卓能够清理缓存空间,ios就只能卸载重 ...

  7. 每天一个Linux命令(01)--ls命令

    ls命令是Linux下最常用的命令.ls命令就是list的缩写,缺省下ls用来打印当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单.通过ls命令不仅可以查看Linux文件 ...

  8. java中 i = i++ 的结果

    昨天看到下面这段代码,分享出来给大家看看,大家也可以讨论讨论. int i = 0; i = i++; System.out.println("i的值是 "+i); 根据我们通常所 ...

  9. [数据挖掘] - 聚类算法:K-means算法理解及SparkCore实现

    聚类算法是机器学习中的一大重要算法,也是我们掌握机器学习的必须算法,下面对聚类算法中的K-means算法做一个简单的描述: 一.概述 K-means算法属于聚类算法中的直接聚类算法.给定一个对象(或记 ...

  10. 深入理解 JavaScript 异步系列(1)—— 什么是异步

    前言 2014年秋季写完了<深入理解javascript原型和闭包系列>,已经帮助过很多人走出了 js 原型.作用域.闭包的困惑,至今仍能经常受到好评的留言. 很早之前我就总结了JS三座大 ...