Hadoop  2.0产生

本文探讨Hadoop 2.0如何通过HA和Federation解决Hadoop 1.0中HDFS和MapReduce存在的单点故障、扩展性及内存限制等问题。介绍HDFS 2.x中主备NameNode机制与基于Zookeeper的自动故障转移,以及通过多个NameNode实现的水平扩展。

目录

一、Hadoop  2.0产生背景

二、Hadoop  1.x与Hadoop  2.x

三、HDFS  2.x

四、HDFS  2.0  HA(高可用)

解决方法

五、HDFS  2.x  Federation(联邦)


一、Hadoop  2.0产生背景

Hadoop 1.0中HDFS和MapReduce在高可用、扩展性等方面存在问题

HDFS存在的问题

NameNode单点故障,难以应用于在线场景    HA(高可用)

NameNode压力过大,且内存受限,影扩展性   F(联邦)

MapReduce存在的问题响系统

JobTracker访问压力大,影响系统扩展性

难以支持除MapReduce之外的计算框架,比如Spark、Storm等

二、Hadoop  1.x与Hadoop  2.x

Hadoop 2.x由HDFS、MapReduce和YARN三个分支构成;

HDFS:NN Federation(联邦)HA

2.X:只支持2个节点HA3.0实现了一主多从

MapReduce:运行在YARN上的MR

离线计算,基于磁盘I/O计算

YARN:资源管理系统

三、HDFS  2.x

解决HDFS 1.0中单点故障内存受限问题。

解决单点故障

  1. HDFS HA:通过主备NameNode解决
  2. 如果主NameNode发生故障,则切换到备NameNode上

解决内存受限问题

  1. HDFS Federation(联邦)
  2. 水平扩展,支持多个NameNode
  3. 2每个NameNode分管一部分目录
  4. 1所有NameNode共享所有DataNode存储资源

2.x仅是架构上发生了变化,使用方式不变

对HDFS使用者透明

HDFS 1.x中的命令和API仍可以使用

四、HDFS  2.0  HA(高可用)

  1. ZKFC(蓝色背景的大圈):自动故障转移,jvm进程
  2. ZK (蓝色背景的小圈):分布式协调

       ZKFC(与之对应的NN在同一物理操作系统)监控硬件、软件、NN、操作系统,看其是否还健康。

当集群第一次开机时有一个NN是Active 另外一个是Standby,那么谁是Active呢,要看ZK来分布式协调,两个ZKFC去ZK

中争抢创建,谁创建上就是Active。

        ZK的事件监听和回调,当一个NN1挂掉,对应的ZKFC1知道后去ZK把自己创建的东西删掉,删掉这个事件回调一个事件,在另一个ZKFC把自己对应的NN升为Active

   

       若ZKFC1挂掉,NN1还活着,ZK把对应的节点删掉,另一个ZKFC会把NN1降为Standby,自己的NN升为Active

 

解决方法

主备NameNode

解决单点故障属性,位置

主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换

所有DataNode同时向两个NameNode汇报数据块信息(位置)

JNN:集群(属性)

standby:备,完成了edits.log文件的合并产生新的image,推送回ANN

两种切换选择

手动切换:通过命令实现主备之间的切换,可以用HDFS升级等场合

自动切换:基于Zookeeper实现

基于Zookeeper自动切换方案

ZooKeeper Failover Controller:监控NameNode健康状态

并向Zookeeper注册NameNode

NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC 锁的NameNode变为active

 

五、HDFS  2.x  Federation(联邦)

通过多个namenode/namespace把元数据的存储和管理分散到多个节点中,使到namenode/namespace可以通过增加机器来进行水平扩展

能把单个namenode的负载分散到多个节点中,在HDFS数据规模较大的时候不会也降低HDFS的性能。可以通过多个namespace来隔离不同类型的应用,把不同类型应用的HDFS元数据的存储和管理分派到不同的namenode中。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值