hadoop1.x和2.x的区别、HA机制及zookepper介绍

                                                                                        hadoop1.x和2.x的区别、HA机制及zookepper介绍

hadoop2.x 及hadoop1.x的HDFS的区别:

hadoop2.x支持HA和Federation机制。hadoop1.x中不支持HA和Federation机制。

在运算框架上:

hadoop2.x是YARN + MAPREDUCE  hadoop1.x只有 MAPREDUCE

hadoop2.x的运算分为两个组件,职责也是分开,资源调度是由YARN框架负责。YARN框架是有两种角色,ResourceManager(HA可以有多个) NodeManager(大量的)

运算任务:MR(MAPREDUCE是完成运算任务的启动、中间结果调度、管理、任务状态的监控) MrAppMaster(每一job启动时产生一个) maptask(yarnchild) reducetask(yarnchild) 每个job任务都有自己有自己的任务调度主管进程

hadoop1.x资源管理+运算任务管理都是由MAPREDUCE框架完成。JobTracker(主管进程)负责资源调度和任务监控TaskTracker(maptask reducetask)整个集群只有一个主节点负责任务的接收和所有任务的监控管理。

NameNode的作用:管理元数据、响应客户请求。

Secondary NameNode的作用:负责checkpoint操作。

为了应对NameNode发生宕机的情况,hadoop2.x提供了HA机制。通过配置来开启HA机制。

该机制含有:Active NameNode 、 StandByNameNode 

Active NameNode与StandbyNameNode可以相互切换,功能也是可以相互替换的。当二者某一宕机时,另外一个可以替换过去。

假如ActiveNameNode发生了宕机,StandbyNameNode要迅速切换过去。

此时必须满足的条件:

   二者的元数据要实时一致。二者的结构都相同Fsimage磁盘上的永久镜像,内存中metadata,editslog。

  假设此时是ActiveNameNode在响应客户端的请求,记录新的元数据,当客户端向集群中上传数据,要记录新的元数据,先写到editslog,接下来完成上传,上传结束后更新内存metadata元数据。但是StandbyNameNode中的元数据要保持一致,可以通过网络同时写。但是网络的可靠性需要考虑延时响应等问题。此时选择的机制是:editslog放到第三方,Active NameNode可以写入editslog,StandbyNameNode读取editslog。此时就可以完成两台NameNode同步。

   由上分析保持两个NameNode一致的关键是editslog的维护,如何避免editslog宕机。

创建editslog的集群,由zookeeper来管理,完成集群协调。hadoop的2.x的HA机制是基于zookeeper完成的。

   Zookeeper机制:为分布式程序提供协调服务。作为第三方管理一些共享数据,zookeeper本身非常可靠,自身就是一个分布式集群来提供的服务。

zookeeper含有奇数个服务器,含有一个leader节点,客户端上传数据时,且leader节点会使该数据同时存放到非leader节点,leader节点是动态产生的,当该数据有超过一半以上的节点保存数据成功,就认为该数据保管成功。

为什么使用Zookeeper:

分布式应用需要一个主控、协调器或控制器来管理分布的子进程。

应用场景:命名服务、配置管理等



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值