Hadoop_HA原理

  1. 总体上说, Hadoop 2.0 中的HDFS 和YARN 均采用了基于共享存储的HA 解决方案,即Active Master 不断将信息写入一个共享存储系统, 而Standby Master 则不断读取这些信息,以与Active Master 的内存信息保持同步。当需要主备切换时, 选中的Standby Master需先保证信息完全同步后, 再将自己的角色切换至Active Master。目前而言,常用的共享存储系统有以下几个:

    ❑Zookeeper : Zookeeper 是一个针对大型分布式系统的可靠协调系统, 提供的功能包括统一命名服务、配置管理、集群管理、共享锁和队列管理等。需要注意的是,Zoo keeper 设计目的并不是数据存储,但它的确可以安全可靠地存储少量数据以解决分布式环境下多个服务之间的数据共享问题。
    ❑ NFS ( Network File System) : NFS 是一种非常经典的数据共享方式, 它可以透过网络,让不同的机器和不同的操作系统之间彼此共享文件。
    ❑ HDFS : Hadoop 自带的分布式文件系统, 由于它本身存在单点故障问题, 因此Hadoop 的单点问题不能够通过其解决。
    ❑ BookKeeper:由Zookeeper 项目产生的一个分支项目, 主要用于可靠地记录日志流, 它采用的是分布式多副本解决方案。
    ❑ QJM ( Qurom Journal Manager) : QJM 的基本原理就是用2N+l 个节点存储数据, 每次有大多数(大于等于N+l)节点成功写入数据即认为该次写成功, 并能保证数据高可用。该算法最多容忍N台机器挂掉, 如果多于N台挂掉,则这个算法就会失效。

  2. HA架构分为手动模式和自动模式。其中,手动模式是指由管理员通过命令进行主备切换,这通常用于服务升级,自动模式可降低运维成本,但存在潜在危险。
    自动模式主要由以下几个组件构成:

    ❑MasterHADaemon :与Master 服务运行在同一个进程中, 可接收外部RPC 命令,以控制Master 服务的启动和停止。
    ❑SharedStorage :共享存储系统, Active Master 将信息写入共享存储系统,而Standby Master 则读取该信息以保持与Active Master 的同步。
    ❑ZKFailoverController :基于Zookeeper 实现的切换控制器,主要由ActiveStandbyElector和HealthMonitor 两个核心组件构成。其中, ActiveStandbyElector 负责与Zookeeper集群交互, 通过尝试获取全局锁,以判断所管理的Master 是进入Active 还是进入Standby 状态; HealthMonitor 负责监控各个活动Master 的状态,以根据它们的状态进行状态切换。
    ❑Zookeeper :核心功能是通过维护一把全局锁控制整个集群有且仅有一个ActiveMaster 。当然,如果SharedStorge 采用了Zookeeper,则还会记录一些其他状态和运行时信息。

  3. 要解决HA 问题需考虑以下几个问题:
    ( 1 )脑裂( brainsplit)
    脑裂是指在主备切换时,由于切换不彻底或其他原因,导致客户端和Slave 误以为出现两个Active Master,最终使得整个集群处于混乱状态。通常采用隔离(Fencing )机制解决脑裂问题。解决脑裂问题需从以下三个方面考虑:

    ❑共享存储隔离:确保只有一个Master 往共享存储中写数据。
    ❑客户端隔离:确保只有一个Master 可以响应客户端的请求。
    ❑Slave 隔离:确保只有一个Master 可以向Slave 下发命令。
    Hadoop 公共库中对外提供了两种隔离实现, 分别是sshfence 和shellfence。其中sshfence是指通过SSH 登录目标Master 节点上, 使用命令fuser 将进程杀死(通过TCP 端口号定位进程PID ,该方法比JPS 命令更准确) ; shellfence 是指执行一个用户事先定义的Shell 命令(脚本)完成隔离。

    ( 2 )切换对外透明
    为了保证整个切换是对外透明的, Hadoop 应保证所有客户端和Slave 能自动重定向到新的Active Master 上, 这通常是通过若干次尝试连接旧Master 不成功后, 再重新尝试链接新Master 完成的, 整个过程有一定延迟。在新版本的Hadoop RPC 中, 用户可自行设置RPC客户端尝试机制、尝试次数和尝试超时时间等参数。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值