一、Zookeeper入门
1.概述
Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。
2 .特点
1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
2)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。
3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。
4)更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。
5)数据更新原子性,一次数据更新要么成功,要么失败。
6)实时性,在一定时间范围内,Client能读到最新数据。
3.应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
二、Zookeeper单机版安装
下载地址:https:///zookeeper/zookeeper-3.5.10/
本次安装前提:Hadoop集群已搭建完成
1.拷贝apache-zookeeper-3.5.7-bin.tar.gz安装包到Linux系统下
解压到指定目录
[hadoop@hadoop101 software]$ tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
修改名称
[hadoop@hadoop101 module]$ mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7
2.配置修改
将/opt/module/zookeeper-3.5.7/conf这个路径下的zoo_sample.cfg修改为zoo.cfg
[hadoop@hadoop101 conf]$ vim zoo.cfg
打开zoo.cfg文件,修改dataDir路径
[hadoop@hadoop101 conf]$ vim zoo.cfg
dataDir:保存Zookeeper中的数据
clientPort = 2181:客户端连接端口,通常不做修改。
修改如下内容:
dataDir=/opt/module/zookeeper-3.5.7/zkData
在/opt/module/zookeeper-3.5.7/这个目录上创建zkData文件夹
[hadoop@hadoop101 zookeeper-3.5.7]$ mkdir zkData
3.操作Zookeeper
启动Zookeeper,查看进程是否启动,查看状态
[hadoop@hadoop101 zookeeper-3.5.7]$ bin/ start
[hadoop@hadoop101 zookeeper-3.5.7]$ bin/ status
[hadoop@hadoop101 zookeeper-3.5.7]$ jps
三、Zookeeper集群安装
配置服务器编号
[hadoop@hadoop101 zookeeper-3.5.7]$ cd zkData/
[hadoop@hadoop101 zkData]$ vim myid
配置zoo.cfg文件
[hadoop@hadoop101 conf]$ vim zoo.cfg
在文件中添加以下内容:
server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
拷贝配置好的zookeeper到其他机器上(分发脚本Hadoop阶段已写好)
[hadoop@hadoop101 conf]$ xsync /opt/module/
修改其他机器的myid
[hadoop@hadoop102 module]$ vim zookeeper-3.5.7/zkData/myid
[hadoop@hadoop103 module]$ vim zookeeper-3.5.7/zkData/myid
分别启动Zookeeper ,查看状态
[hadoop@hadoop101 zookeeper-3.5.7]$ bin/ start
[hadoop@hadoop101 zookeeper-3.5.7]$ bin/ status
[hadoop@hadoop102 zookeeper-3.5.7]$ bin/ start
[hadoop@hadoop102 zookeeper-3.5.7]$ bin/ status
[hadoop@hadoop103 zookeeper-3.5.7]$ bin/ start
[hadoop@hadoop103 zookeeper-3.5.7]$ bin/ status
四、Zookeeper集群启动停止脚本
[hadoop@hadoop101 bin]$ vim /home/hadoop/bin/myzookper.sh
脚本中添加如下内容:
#!/bin/bash
case $1 in
"start"){
for i in hadoop101 hadoop102 hadoop103
do
echo ---------- zookeeper $i 启动 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/ start"
done
};;
"stop"){
for i in hadoop101 hadoop102 hadoop103
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/ stop"
done
};;
"status"){
for i in hadoop101 hadoop102 hadoop103
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/ status"
done
};;
esac
增加脚本执行权限
[hadoop@hadoop101 bin]$ chmod u+x myzookper.sh
群起脚本,查看状态,关闭集群
[hadoop@hadoop101 bin]$ mv myzookper.sh myzookper
[hadoop@hadoop101 bin]$ myzookper start
[hadoop@hadoop101 bin]$ myzookper status
[hadoop@hadoop101 bin]$ myzookper status