D.1    安装ZooKeeper

D.1.1   下载ZooKeeper

ZooKeeper是Apache基金会的一个开源、分布式应用程序协调服务,是Google的Chubby一个开源的实现。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。它的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

ZooKeeper安装包可以在其官网下载页面下载,下载地址如下,为加快下载速度可以选择中国境内的镜像,选择稳定版本zookeeper-3.4.8.tar.gz安装包。

http://zookeeper.apache.org/releases.html#download

D.1.2   解压并配置环境变量

下载后把安装包方放在目录/home/spark/work目录下,用下面命令解压缩ZooKeeper安装包,并把解压后的目录移动到/app/soft目录下:

$cd /home/spark/work/

$tar -zxf zookeeper-3.4.8.tar.gz

$mv zookeeper-3.4.8 /app/soft

$ll /app/soft

为了方便运行zkServer.sh脚本,在集群中的节点中,需要将ZooKeeper的bin路径加入到/etc/profile中,设置如下内容(分发到各节点后,在各节点上做同样设置):

export ZOOKEEPER_HOME=/app/soft/zookeeper-3.4.8

export PATH=$PATH:$ZOOKEEPER_HOME/bin

设置完毕后使用如下命令使配置生效:

$source /etc/profile

D.1.3   修改ZooKeeper的配置文件

在ZooKeeper的根目录下建立data和log目录用于存放工作数据和日志文件:

$mkdir /app/soft/zookeeper-3.4.8/data/

$mkdir /app/soft/zookeeper-3.4.8/log/

在ZooKeeper配置目录下默认情况下,不存在在zoo.cfg文件,需要复制一份,然后进行修改,命令如下:

$cd /app/soft/zookeeper-3.4.8/conf/

$cp zoo_sample.cfg zoo.cfg

$sudo vi zoo.cfg

修改zoo.cfg配置文件内容(仅列出重要配置):

#用于存放ZooKeeper的数据和日志

dataDir=/app/soft/zookeeper-3.4.8/data

dataLogDir=/app/soft/zookeeper-3.4.8/log

//外部客户端连接端口号,在Kafka中将使用该端口号

clientPort=2181

//ZooKeeper集群相关配置信息

server.1=master:2888:3888

server.2=slave1:2888:3888

server.3=slave2:2888:3888

配置中server.A=B:C:D含义如下

lA为数字,表示这个是第几号服务器;

lB 表示该服务器的 ip 地址;

lC 表示该服务器与集群中的 Leader 服务器交换信息的端口;

lD 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

如果是伪集群的配置方式,由于 B 都是一样,所以不同的 ZooKeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

D.1.4   分发ZooKeeper到各节点

使用scp命令到ZooKeeper分发到slave1和slave2节点上:

$cd /app/soft/

$scp -r zookeeper-3.4.8 spark@slave1:/app/soft

$scp -r zookeeper-3.4.8 spark@slave2:/app/soft

在dataDir目录下创建一个myid文件,然后分别在myid文件中按照zoo.cfg文件的server.A中A的数值,在不同机器上的该文件中填写相应的值,如master节点该值为1、slave1节点该值为2、slave2节点该值为3。

$cd /app/soft/zookeeper-3.4.8/data

$vi myid

D.2    启动并验证

执行命令“zkServer.sh start”将会启动ZooKeeper。在此大家需要注意的是,不同节点上的ZooKeeper需要单独启动。而执行命令“zkServer.sh stop”将会停止ZooKeeper。可以使用命令“JPS”查看ZooKeeper是否成功启动,或执行命令“zkServer.sh status”查看ZooKeeper集群状态:

$zkServer.sh start

$zkServer.sh status

图 附录D‑1 启动Zookeeper并查看状态

当第一个节点启动ZooKeeper时由于集群的其他节点未启动ZooKeeper,使用zkServer.sh status命令查看当前状态时会提示错误。但是随着后续节点的ZooKeeper的陆续启动,使用status查看状态时会显示当前节点的状态,本次master作为了follower。

附录D 安装ZooKeeper的更多相关文章

  1. Eclipse安装ZooKeeper插件

    Eclipse在线安装插件奇慢的解决办法 安装ZooKeeper插件步骤如下:Step 1. 在 Eclipse 菜单打开Help -> Install New Software…Step 2. ...

  2. 在CentOS上安装ZooKeeper集群

    一共准备3个CentOS虚拟机 172.16.9.194 172.16.9.195 172.16.9.196 上传zookeeper-3.3.6.tar.gz到服务器并解压,3台服务器的目录结构如下 ...

  3. centos下安装ZooKeeper

    1.需求 安装ZooKeeper,metaQ 2.下载 http://zookeeper.apache.org/releases.html 当前stable版是zookeeper-3.4.6 3.解压 ...

  4. linux php安装zookeeper扩展

    linux php安装zookeeper扩展 tags:php zookeeper linux ext 前言: zookeeper提供很犀利的命名服务,并且集群操作具有原子性,所以在我的多个项目中被采 ...

  5. 3 安装Zookeeper

    cnblogs-DOC 1.服务器环境 2.安装Redis3.安装Zookeeper4.安装MPush5.安装Alloc服务6.完整测试7.常见问题 从官网直接下载Zookeeper最新版本(Zook ...

  6. RHEL自动安装zookeeper的shell脚本

    RHEL自动安装zookeeper的shell脚本 A:本脚本运行的机器,Linux RHEL6 B,C,D,...:待安装zookeeper cluster的机器, Linux RHEL6 首先在脚 ...

  7. windows 安装zookeeper

    1 .下载 java sdk 和zookeeper  安装包 因为zookeeper是依赖java sdk,运行zookeeper先要,安装javaSDK . 2.安装zookeeper,zookee ...

  8. Linux上安装Zookeeper以及一些注意事项

    最近打算出一个系列,介绍Dubbo的使用. 分布式应用现在已经越来越广泛,Spring Could也是一个不错的一站式解决方案,不过据我了解国内目前貌似使用阿里Dubbo的公司比较多,一方面这个框架也 ...

  9. Windows下安装ZooKeeper

    Windows下安装ZooKeeper   一.简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组 ...

随机推荐

  1. 最小生成树 prime poj1258

    题意:给你一个矩阵M[i][j]表示i到j的距离 求最小生成树 思路:裸最小生成树 prime就可以了 最小生成树专题 AC代码: #include "iostream" #inc ...

  2. MYSQL 5.0 USING BTREE 错误

    今天遇到个错误,导入数据库的时候报错,最后发现是php版本的问题导致包含 KEY `uniacid` (`uniacid`) USING BTREE 的SQL命令报错 5.1之前的写法: KEY `u ...

  3. Devexpress Ribbon

    http://www.cnblogs.com/liwei81730/archive/2011/12/21/2296203.html 可查看此处.

  4. Unity3d使用高通Vuforia发布IOS工程不支持64位的一些解决办法

    1.将Unit升级至4.6.x或5.0.x,将Vuforia差距升级到最新版本(vuforia-unity-mobile-android-ios-4-0-105 ) 2.平台Other Setting ...

  5. 为什么要重写hashcode() 方法

    Java中的集合(Collection)有两类,一类是List,再有一类是Set. 前者集合内的元素是有序的,元素可以重复:后者元素无序,但元素不可重复. 那么我们怎么判断两个元素是否重复呢? 这就是 ...

  6. java学习之面向对象(2)

    在描述事物的时候,该事物已存在就具备的一些内容,这是我们就可以把它们都定义在构造函数中,那么什么是构造函数呢? 构造函数就是构建创造对象时调用的函数,它可以给对象进行初始化.构造函数与类名相同,第一个 ...

  7. 关于ReSharper

    Resharper提供以下6个核心功能1. 代码分析(Code Analysis):智能提示代码中存在的问题和修复建议. 2. 编码助手(Coding Assistance):智能提示自动完成功能.  ...

  8. 启动App的Intent

    类似桌面图标打开App的Intent 程序中需要一种通知,点击后的效果需要像点击桌面图标那样: 程序在前台就什么也不干. 程序在后台,就切换到前台. 程序未启动,就启动程序. 点击通知后,通知本身跳转 ...

  9. CYQ.Data.Orm.DBFast 新增类介绍(含类的源码及新版本配置工具源码)

    前言: 以下功能在国庆期就完成并提前发布了,但到今天才有时间写文介绍,主要是国庆后还是选择就职了,悲催的是上班的地方全公司都能上网,唯独开发部竟不让上网,是个局域网. 也不是全不能上,房间里有三台能上 ...

  10. Go语言实战 - 创业进行时之创业伊始

    在工作了10年之后,我于32岁的年纪在两个月前辞职创业了. 简单介绍一下之前的整个职业生涯,挺典型的,工程师 –> 资深工程师 –> 架构师 –> 项目经理 –> 部门经理,可 ...