1. Zookeeper概念简介:
Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务
A、zookeeper是为别的分布式程序服务的
B、Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务)
C、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务……
D、虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能:
1. 管理(存储,读取)用户程序提交的数据;
(我的理解就是一个集群的各个节点都到zookeeper上注册,节点的ip啊,是不是活着啊等等的信息,存到zookeeper)
2.并为用户程序提供数据节点监听服务;
(我的理解就是看看zookeeper监听着这些已经注册的节点,哪个从节点挂了赶紧重启或者重新选举新的主节点)
Zookeeper常用应用场景:
《见图》
Zookeeper集群的角色: Leader 和 follower (Observer)
只要集群中有半数以上节点存活,集群就能提供服务
2. zookeeper集群机制
半数机制:集群中半数以上机器存活,集群可用。
选举机制:leader挂了,就会自动在follow中选出一个leader出来
zookeeper适合装在奇数台机器上!!!
3. 安装
安装到3台虚拟机上
安装好JDK
3.1 上传
上传用工具。
3.1 解压
su – hadoop(切换到hadoop用户)
tar -zxvf zookeeper-3.4.5.tar.gz(解压)
1.3 重命名
mv zookeeper-3.4.5 zookeeper(重命名文件夹zookeeper-3.4.5为zookeeper)
3.4. 修改环境变量
1、su – root(切换用户到root)
2、vi /etc/profile(修改文件)
3、添加内容:
export ZOOKEEPER_HOME=/home/hadoop/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin |
4、重新加载文件到系统:
source /etc/profile
5、注意:3台zookeeper都需要修改
6、修改完成后切换回hadoop用户:
su - hadoop
3.6 修改配置文件
1、用hadoop用户操作
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg
2、vi zoo.cfg
3、内容解释:
dataDir=/root/apps/zkdata #zookeeper的工作目录,数据存放的目录。 server.1=slave1:2888:3888 (主机名也可以IP地址, leader和follower之间的通信端口、选举leader时用的投票端口) server.2=slave2:2888:3888 server.3=slave3:2888:3888 注意clientport=2181 就是对外连接客户端的端口。 |
4、创建文件夹:
cd /home/hadoop/zookeeper/
mkdir -m 755 data
mkdir -m 755 log
5、在zookeeper的工作目录(就是配置文件中的那个)文件夹下新建myid文件,myid的文件内容为:
cd /root/apps/zkdata
vi myid
添加内容:
1 |
3.7 将集群下发到其他机器上
scp -r /root/apps/zookeeper hadoop@slave2:/root/apps/zookeeper
scp -r /root/apps/zookeeper hadoop@slave3:/root/apps/zookeeper
3.8 修改其他机器的配置文件
到其他节点上:修改myid文件为:2
到其他节点上:修改myid文件为:3
3.9 启动(每台机器)
zkServer.sh start
3.10 查看集群状态
1、 jps(查看进程)
2、 zkServer.sh status(查看集群状态,主从信息)