附录D 安装ZooKeeper
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的更多相关文章
- Eclipse安装ZooKeeper插件
Eclipse在线安装插件奇慢的解决办法 安装ZooKeeper插件步骤如下:Step 1. 在 Eclipse 菜单打开Help -> Install New Software…Step 2. ...
- 在CentOS上安装ZooKeeper集群
一共准备3个CentOS虚拟机 172.16.9.194 172.16.9.195 172.16.9.196 上传zookeeper-3.3.6.tar.gz到服务器并解压,3台服务器的目录结构如下 ...
- centos下安装ZooKeeper
1.需求 安装ZooKeeper,metaQ 2.下载 http://zookeeper.apache.org/releases.html 当前stable版是zookeeper-3.4.6 3.解压 ...
- linux php安装zookeeper扩展
linux php安装zookeeper扩展 tags:php zookeeper linux ext 前言: zookeeper提供很犀利的命名服务,并且集群操作具有原子性,所以在我的多个项目中被采 ...
- 3 安装Zookeeper
cnblogs-DOC 1.服务器环境 2.安装Redis3.安装Zookeeper4.安装MPush5.安装Alloc服务6.完整测试7.常见问题 从官网直接下载Zookeeper最新版本(Zook ...
- RHEL自动安装zookeeper的shell脚本
RHEL自动安装zookeeper的shell脚本 A:本脚本运行的机器,Linux RHEL6 B,C,D,...:待安装zookeeper cluster的机器, Linux RHEL6 首先在脚 ...
- windows 安装zookeeper
1 .下载 java sdk 和zookeeper 安装包 因为zookeeper是依赖java sdk,运行zookeeper先要,安装javaSDK . 2.安装zookeeper,zookee ...
- Linux上安装Zookeeper以及一些注意事项
最近打算出一个系列,介绍Dubbo的使用. 分布式应用现在已经越来越广泛,Spring Could也是一个不错的一站式解决方案,不过据我了解国内目前貌似使用阿里Dubbo的公司比较多,一方面这个框架也 ...
- Windows下安装ZooKeeper
Windows下安装ZooKeeper 一.简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组 ...
随机推荐
- 破除Odoo 菜单栏提示 99+
菜单栏提示利用的menu对象的needaction_counter属性,默认只能显示99个 多于99则显示99+ 如果希望显示完整的数字,则需要改动如下两个地方. 一.menu菜单的显示限制: 将第一 ...
- iOS 从某个页面返回然后刷新当前页面
-------->不说废话 在返回页面实现下面方法: - (void)navigationController:(UINavigationController*)navigationContro ...
- cookies,sessionStorage 和 localStorage区别
cookies,sessionStorage 和 localStorage 的区别 cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密). cook ...
- Ionic实战 自动升级APP(Android版)
Ionic 框架介绍 Ionic是一个基于Angularjs.可以使用HTML5构建混合移动应用的用户界面框架,它自称为是"本地与HTML5的结合".该框架提供了很多基本的移动用户 ...
- 基于struts2和hibernate的分页实现
在拜读了各位大牛的博客后,加以修改和添加总算是借鉴出了一个可行的分页实现.(●'◡'●) 话不多说,先贴两张效果图吧 接下来是实现代码: pagingDAOImpl.java public class ...
- F.I.S初探(前端工程化)
云笔记:http://note.youdao.com/share/?id=7c4a2dcf118f0ad7bb52a36aaee46a7a&type=note 一.初识FIS 在做项目中遇 ...
- 学习笔记:Hashtable和HashMap
学了这么些天的基础知识发现自己还是个门外汗,难怪自己一直混的不怎么样.但这样的恶补不知道有没有用,是不是过段时间这些知识又忘了呢?这些知识平时的工作好像都是随拿随用的,也并不是平时一点没有关注过这些基 ...
- Edge.js:让.NET和Node.js代码比翼齐飞
通过Edge.js项目,你可以在一个进程中同时运行Node.js和.NET代码.在本文中,我将会论述这个项目背后的动机,并描述Edge.js提供的基本机制.随后将探讨一些Edge.js应用场景,它在这 ...
- ABP理论学习之异常处理
返回总目录 本篇目录 介绍 开启错误处理 非Ajax请求 展示异常信息 UserFriendlyException Error模型 Ajax请求 异常事件 介绍 在一个web应用中,异常通常是在MVC ...
- 给你的应用“一只”智慧的眼睛 —— Barcode常识普及以及识别信息处理
在“如何用MediaCapture解决二维码扫描问题”这篇文章中,我们通过“成像”.“截图”与“识别”三个步骤介绍了使用MediaCapture扫码的主要过程及注意事项.本文主要针对“识别”的过程,对 ...