详解分布式应用程序协调服务Zookeeper

欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯!
主从结构:HDFS、Yarn、HBase、storm、spark、zookeeper都存在单点故障问题
hadoop1.x没有解决方案
hadoop2.x利用zookeeper实现HA

zookeeper是开源的分布式应用程序协调服务,是Google chubby的开源实现
zookeeper相当于一个数据库,可以实现HA,zookeeper的功能:配置管理、集群管理、分布式锁
zookeeper的体系结构:leader和follower
zookeeper集群本身具有leader选举功能(解决单点故障问题,因此zookeeper集群至少需要三台)和数据同步功能(保证数据的安全性),
选举端口号:3888,同步端口号:2888
zookeeper也支持单点部署,不存在leader选举功能(paxos协议)和数据同步功能(zab协议),状态:standalone(单独的、独立的)
paxos协议的核心思想:当多数server写成功,则任务数据写成功。如果有3个server,则两个写成功即可。

安装和配置zookeeper:
安装zookeeper:tar -zxvf zookeeper-3.4.10.tar.gz -C ~/training
配置zookeeper:配置ZOOKEEPER_HOME环境变量:
vim ~/.bash_profile
export ZOOKEEPER_HOME=/root/training/zookeeper-3.4.10
export PATH= ZOOKEEPERHOME/bin: Z O O K E E P E R H O M E / b i n : PATH
source ~/.bash_profile
zookeeper的核心配置文件:conf/zoo.cfg 使用cp zoo_sample.cfg zoo.cfg得到zoo.cfg
zookeeper的安装模式:
1、单点模式:一台机器,不存在leader选举功能和数据同步功能 状态:standalone
修改配置文件zoo.cfg:
1、指定zookeeper中数据保存的目录:
dataDir=/root/training/zookeeper-3.4.10/tmp
2、指定zookeeper的主机是谁:
server.1=bigdata11:2888:3888
3、指定server.1的myid:1

2、集群模式:至少三台机器以上 具有leader选举功能和数据同步功能 状态:一个leader,多个follower
1、在bigdata12上安装和配置zookeeper:
安装zookeeper:tar -zxvf zookeeper-3.4.10.tar.gz -C ~/training
配置zookeeper:配置ZOOKEEPER_HOME环境变量:
ZOOKEEPER_HOME=/root/training/zookeeper-3.4.10
PATH= ZOOKEEPERHOME/bin: Z O O K E E P E R H O M E / b i n : PAHT

2、修改配置文件zoo.cfg:
1、指定zookeeper中数据保存的目录:
dataDir=/root/training/zookeeper-3.4.10/tmp
2、指定zookeeper的主机:
server.1=bigdata12:2888:3888
server.2=bigdata13:2888:3888
server.3=bigdata14:2888:3888
3、指定server.1的myid:1

3、把bigdata12上的zookeeper复制到其他节点上:
scp -r zookeeper-3.4.10 root@bigdata12:/root/training
scp -r zookeeper-3.4.10 root@bigdata13:/root/training
scp -r zookeeper-3.4.10 root@bigdata14:/root/training

4、修改bigdata13和bigdata14上的myid文件:

5、在每个节点上启动zookeeper:zkServer.sh start

zookeeper的数据模型:
zookeeper的数据模型类似于Linux文件系统,呈树形结构,每个目录称作一个z节点,每个z节点上可以存储少量数据,默认1M

启动zookeeper:zkServer.sh start
停止zookeeper:zkServer.sh stop
查看zookeeper的状态:zkServer.sh status

启动zookeeper的客户端命令行工具:zkCli.sh
zookeeper的客户端命令行工具端口号:2181
在zookeeper中创建节点添加数据:create /mydata helloworld
在zookeeper中查看节点:get /mydata

作者:李金泽AllenLi,清华大学在读硕士,研究方向:大数据和人工智能

你可能感兴趣的:(Hadoop)