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架构图

 Hadoop生态圈-zookeeper完全分布式部署

4>.领袖推选机制介绍

   在选举leader节点时,首先会比较事务id,其次比较myid,如果集群中已经有一半机器参加选举,那么次leader就是整个集群中的leader。

  为了方便理解,我画了两幅图,便于理解上面的一句话,当事物id一致时推选leader如下:

 Hadoop生态圈-zookeeper完全分布式部署

  当事物id不一致时推选leader如下:

 Hadoop生态圈-zookeeper完全分布式部署

三.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]$ 
[yinzhengjie@s101 data]$ sudo yum -y install wget

相关文章: