一、单机环境搭建

1.1 下载

下载对应版本Zookeeper,这里我下载的版本3.4.14。官方下载地址:https://archive.apache.org/dist/zookeeper/

# wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

1.2 解压

# tar -zxvf zookeeper-3.4.14.tar.gz

1.3 配置环境变量

# vim /etc/profile

添加环境变量:

export ZOOKEEPER_HOME=/usr/app/zookeeper-3.4.14
export PATH=$ZOOKEEPER_HOME/bin:$PATH

使得配置的环境变量生效:

# source /etc/profile

1.4 修改配置

进入安装目录的conf/目录下,拷贝配置样本并进行修改:

# cp zoo_sample.cfg  zoo.cfg

指定数据存储目录和日志文件目录(目录不用预先创建,程序会自动创建),修改后完整配置如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

配置参数说明:

  • tickTime:用于计算的基础时间单元。比如session超时:N*tickTime;
  • initLimit:用于集群,允许从节点连接并同步到 master节点的初始化连接时间,以tickTime的倍数来表示;
  • syncLimit:用于集群, master主节点与从节点之间发送消息,请求和应答时间长度(心跳机制);
  • dataDir:数据存储位置;
  • dataLogDir:日志目录;
  • clientPort:用于客户端连接的端口,默认2181

1.5 启动

由于已经配置过环境变量,直接使用下面命令启动即可:

zkServer.sh start

1.6 验证

使用JPS验证进程是否已经启动,出现QuorumPeerMain则代表启动成功。

[root@hadoop001 bin]# jps
3814 QuorumPeerMain

二、集群环境搭建

为保证集群高可用,Zookeeper集群的节点数最好是奇数,最少有三个节点,所以这里演示搭建一个三个节点的集群。这里我使用三台主机进行搭建,主机名分别为hadoop001,hadoop002,hadoop003。

2.1 修改配置

解压一份zookeeper安装包,修改其配置文件zoo.cfg,内容如下。之后使用scp命令将安装包分发到三台服务器上:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-cluster/data/
dataLogDir=/usr/local/zookeeper-cluster/log/
clientPort=2181

# server.1 这个1是服务器的标识,可以是任意有效数字,标识这是第几个服务器节点,这个标识要写到dataDir目录下面myid文件里
# 指名集群间通讯端口和选举端口
server.1=hadoop001:2287:3387
server.2=hadoop002:2287:3387
server.3=hadoop003:2287:3387

2.2 标识节点

分别在三台主机的dataDir目录下新建myid文件,并写入对应的节点标识。Zookeeper集群通过myid文件识别集群节点,并通过上文配置的节点通信端口和选举端口来进行节点通信,选举出Leader节点。

创建存储目录:

# 三台主机均执行该命令
mkdir -vp  /usr/local/zookeeper-cluster/data/

创建并写入节点标识到myid文件:

# hadoop001主机
echo "1" > /usr/local/zookeeper-cluster/data/myid
# hadoop002主机
echo "2" > /usr/local/zookeeper-cluster/data/myid
# hadoop003主机
echo "3" > /usr/local/zookeeper-cluster/data/myid

2.3 启动集群

分别在三台主机上,执行如下命令启动服务:

/usr/app/zookeeper-cluster/zookeeper/bin/zkServer.sh start

2.4 集群验证

启动后使用zkServer.sh status查看集群各个节点状态。如图所示:三个节点进程均启动成功,并且hadoop002为leader节点,hadoop001和hadoop003为follower节点。

更多大数据系列文章可以参见个人 GitHub 开源项目: 程序员大数据入门指南

最新文章

  1. MVC5+EF6 入门完整教程九
  2. NRF51822之修改设备名(掉电不保存)
  3. JMS【三】--ActiveMQ简单的HelloWorld实例
  4. 自定义android程序一段时间无操作后的功能
  5. 学习BFC
  6. oracle 查看隐含参数脚本
  7. android:scaleType属性
  8. p45.asm
  9. win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置
  10. ios常用动画
  11. 【技术贴】解决支付宝充值信用卡还款跳转到网上银行报错Error 404 - Not Found
  12. JS之路——常用正则表达式
  13. ZF-关于海南的增删改需求
  14. ubuntu 14.04 安装torch及编译环境zbstudio
  15. 宝塔面板设置腾迅COS自动备份网站
  16. 试试使用 eolinker 扫描 GitLab 代码注释自动生成 API 文档?
  17. es6 this指向
  18. Monkey测试简介【转载】
  19. 百度地图marker点击任意一个当前的变化,其余的marker不变
  20. Vuejs选项卡案例

热门文章

  1. 在.net MVC项目中使用ajax进行数据验证
  2. NYOJ 24 素数的距离问题
  3. GIS基础软件及操作(四)
  4. Windows Phone SplashScreen初始屏幕示例
  5. Android零基础入门第13节:Android Studio配置优化,打造开发利器
  6. C#获取应用路径的一些方法
  7. FastMM、FastCode、FastMove的使用(详细讲解了怎么安装与使用)good
  8. springboot 2.x处理404、500等异常
  9. ubuntu QT开发环境(三种方法安装Qt4.8,其中apt-get方法安装QT库最简单)good
  10. VC 函数调用的 汇编代码 浅析