Hadoop生态圈-zookeeper完全分布式部署
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
本篇博客部署是建立在Hadoop高可用基础之上的,关于Hadoop高可用部署请参考:https://www.cnblogs.com/yinzhengjie/p/9070017.html。本篇博客是将Hadoop的高可用配置和zookeeper完全分布式结合使用!
一.分布式协调框架
1>.分布式框架的好处
a>.可靠性:
一个或几个节点的崩溃不会导致整个集群的崩溃。
b>.可伸缩性:
可以通过动态添加主机的方式以及修改少量配置文件,以便提示集群性能。
c>.透明性:
隐藏系统的复杂性,对用户体现为一个单一的应用。
2>.分布式框架的弊端
a>.竞态条件: 一个或多个主机尝试运行一个应用,但是该应用只需要被一个主机所运行。 b>.死锁: 两个进程分别等待对方完成。 c>.不一致性: 数据的部分丢失。
二.Zookeeper简介
1>.Zookeeper的作用
答:为了解决分布式协调框架的一些弊端,就出现了zookeeper软件,它是目前大数据中比较流行的分布式协调框架。
2>.Zookeeper的特色
a>.名字服务:
标识集群中的所有节点,节点能够向其注册并产生唯一标识。
b>.配置管理:
存储配置文件,以便共享。
c>.领袖推选机制:
就是根据其自身的算法推选出leader和follower。
d>.锁和同步服务:
当文件进行修改,会将其进行加锁,防止多用户同时写入。
e>.高有效性数据注册:
一个节点是数据不能超过1M,这个规则是递归的,换句话说,每个节点及其子节点的存储空间大小不能超过1M。
3>.本篇博客部署zookeeper架构图
4>.领袖推选机制介绍
在选举leader节点时,首先会比较事务id,其次比较myid,如果集群中已经有一半机器参加选举,那么次leader就是整个集群中的leader。
为了方便理解,我画了两幅图,便于理解上面的一句话,当事物id一致时推选leader如下:
当事物id不一致时推选leader如下:
三.zookeeper完全分布式部署
1>.下载zookeeper安装包
[yinzhengjie@s101 data]$ sudo yum -y install wget [sudo] password for yinzhengjie: Loaded plugins: fastestmirror Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/2): extras/7/x86_64/primary_db | 149 kB 00:00:00 (2/2): updates/7/x86_64/primary_db | 2.7 MB 00:00:07 Determining fastest mirrors * base: mirrors.huaweicloud.com * extras: mirrors.huaweicloud.com * updates: mirrors.huaweicloud.com Resolving Dependencies --> Running transaction check ---> Package wget.x86_64 0:1.14-15.el7_4.1 will be installed --> Finished Dependency Resolution Dependencies Resolved =============================================================================================================================== Package Arch Version Repository Size =============================================================================================================================== Installing: wget x86_64 1.14-15.el7_4.1 base 547 k Transaction Summary =============================================================================================================================== Install 1 Package Total download size: 547 k Installed size: 2.0 M Downloading packages: wget-1.14-15.el7_4.1.x86_64.rpm | 547 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : wget-1.14-15.el7_4.1.x86_64 1/1 Verifying : wget-1.14-15.el7_4.1.x86_64 1/1 Installed: wget.x86_64 0:1.14-15.el7_4.1 Complete! [yinzhengjie@s101 data]$