Zookeeper 在Hadoop中的应用
2015-06-23 21:06
302 查看
Zookeeper 简介
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
Hadoop简介
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop主要包含两部分:HDFS,YARN。
HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large
data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
YARN 主要包含ResourceManager(RM),以及NodeManager(NM),ApplicationManager(AM),Container四个部分组成,其中RM最为核心,作为全局的资源管理器,他主要负责系统的资源管理与分配
关于Hadoop的的更多介绍可参考:http://hadoop.apache.org/
Hadoop面临的问题
在Hadoop中,不管是HDFS,还是YARN,都存在一个问题,由于HDFS使用NameNode管理众多的DataNode节点,YARN使用ResourceManager管理系统的资源分配,所以如果NN节点或者是RM节点出现问题,都会导致整个集群不能正常使用,为了解决这个问题Hadoop针对NN以及RM引入了
支持Active/StandBy 模式的HA架构。
正常情况下对于NN以及RM,分别只会有一个Active节点,其他节点为Standby,Active节点负责对外提供服务,当Active的节点由于异常不能对外提供服务时,standby节点会转化为Active节点,继续提供服务
Zookeeper帮助Hadoop解决的问题
下文以YARN为例,描述Zookeeper是如何帮助YARN实现HA机制的
创建锁节点
所有的ResourceManager在启动的时候会竞争写一个/yarn-leader-election/pseudo-yarn-rm-cluster节点(临时节点),创建成功的ResourceManager节点变成Active节点,其他的切换为StandBy
注册Watcher节点
所有的standby的ResourceManager节点会向/yarn-leader-election/pseudo-yarn-rm-cluster节点注册一个Watcher
主备切换
当Active的ResourceManager节点出现异常或挂掉时,起在zookeeper上创建的临时节点也会被删除,standy的ResourceManager节点检测到该节点发生变化时,会重新发起竞争,直到产生一个Active节点
如果集群中存在两个ResourceManager节点RM1,RM2,在通过竞争操作后,RM1变成了Active后,如果某个时间段RM1由于资源损耗比较严重,产生了假死的现象,此时的zookeeper会以为RM1这台机器出现了故障,于是发起新一轮的竞选,选了RM2作为Active,在RM2变成Active后,RM1恢复了服务但是它任然以为自己是Active的,此时就出现了两个Active的情况,这种情况又称为“脑裂”,为了解决这种问题可以在创建根节点的时候引入ACL控制,这样的话当RM1恢复后尝试更新数据时,会发现对应的节点必须提供RM2的ACL信息才可以更新对应的数据
在Hadoop中负责解决该问题的组件是Hadoop-common 中的ActiveStandElector组件
HDFS的原理与之ResourceManager类似
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
Hadoop简介
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop主要包含两部分:HDFS,YARN。
HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large
data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
YARN 主要包含ResourceManager(RM),以及NodeManager(NM),ApplicationManager(AM),Container四个部分组成,其中RM最为核心,作为全局的资源管理器,他主要负责系统的资源管理与分配
关于Hadoop的的更多介绍可参考:http://hadoop.apache.org/
Hadoop面临的问题
在Hadoop中,不管是HDFS,还是YARN,都存在一个问题,由于HDFS使用NameNode管理众多的DataNode节点,YARN使用ResourceManager管理系统的资源分配,所以如果NN节点或者是RM节点出现问题,都会导致整个集群不能正常使用,为了解决这个问题Hadoop针对NN以及RM引入了
支持Active/StandBy 模式的HA架构。
正常情况下对于NN以及RM,分别只会有一个Active节点,其他节点为Standby,Active节点负责对外提供服务,当Active的节点由于异常不能对外提供服务时,standby节点会转化为Active节点,继续提供服务
Zookeeper帮助Hadoop解决的问题
下文以YARN为例,描述Zookeeper是如何帮助YARN实现HA机制的
创建锁节点
所有的ResourceManager在启动的时候会竞争写一个/yarn-leader-election/pseudo-yarn-rm-cluster节点(临时节点),创建成功的ResourceManager节点变成Active节点,其他的切换为StandBy
注册Watcher节点
所有的standby的ResourceManager节点会向/yarn-leader-election/pseudo-yarn-rm-cluster节点注册一个Watcher
主备切换
当Active的ResourceManager节点出现异常或挂掉时,起在zookeeper上创建的临时节点也会被删除,standy的ResourceManager节点检测到该节点发生变化时,会重新发起竞争,直到产生一个Active节点
如果集群中存在两个ResourceManager节点RM1,RM2,在通过竞争操作后,RM1变成了Active后,如果某个时间段RM1由于资源损耗比较严重,产生了假死的现象,此时的zookeeper会以为RM1这台机器出现了故障,于是发起新一轮的竞选,选了RM2作为Active,在RM2变成Active后,RM1恢复了服务但是它任然以为自己是Active的,此时就出现了两个Active的情况,这种情况又称为“脑裂”,为了解决这种问题可以在创建根节点的时候引入ACL控制,这样的话当RM1恢复后尝试更新数据时,会发现对应的节点必须提供RM2的ACL信息才可以更新对应的数据
在Hadoop中负责解决该问题的组件是Hadoop-common 中的ActiveStandElector组件
HDFS的原理与之ResourceManager类似
相关文章推荐
- 详解HDFS Short Circuit Local Reads
- Hadoop_2.1.0 MapReduce序列图
- 使用Hadoop搭建现代电信企业架构
- 单机版搭建Hadoop环境图文教程详解
- hadoop常见错误以及处理方法详解
- hadoop 单机安装配置教程
- hadoop的hdfs文件操作实现上传文件到hdfs
- hadoop实现grep示例分享
- Shell脚本实现自动安装zookeeper
- 基于Zookeeper的使用详解
- Apache Hadoop版本详解
- linux下搭建hadoop环境步骤分享
- hadoop client与datanode的通信协议分析
- hadoop中一些常用的命令介绍
- Hadoop单机版和全分布式(集群)安装
- 用PHP和Shell写Hadoop的MapReduce程序
- hadoop map-reduce中的文件并发操作
- Hadoop1.2中配置伪分布式的实例
- java结合HADOOP集群文件上传下载
- 用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试