Hadoop2.0架构

Hadoop1.0的架构请参考另外一篇文章。

Hadoop2.0中对HDFS1和MRv1进行了改进,分别称为HDFS2和YARN(MRv2)。

HDFS的改进

在HDFS 1.0中,NameNode是master node,仅有一个节点,是单机失败的。因此在Hadoop2.0中对单个Namenode做了HA改进:

NameNode成为了:Active Namenode和Standby Namenode。且ANN和SNN通过共享存储的方式来实现数据同步。同时ANN和SNN都向Zookeeper发送心跳信息,当ANN出现故障时,由Zookeeper选举SNN成为新的ANN,从而实现自动failover。

同时Hadoop2.0应用HDFS federation进一步提高灵活性:

HDFS的命名空间包含目录、文件和块。命名空间管理是指命名空间支持对HDFS中的目录、文件和块做类似文件系统的创建、修改、删除、列表文件和目录等基本操作。在Hadoop 1中,HDFS只有一个namespace,也就是说所有目录,文件的信息全部保存在一起(Namenode)。这样做的缺点很多,例如:

1,可扩展性差,所有命名空间必须全部加载到内存中,容易达到上限。

2,租户间隔离性差。当HDFS同时存储多个应用数据时,不同应用的Namespace混在一起。

改进方式是使用HDFS federation,将命名空间划分为不相关的子空间,用不同的NameNode进行管理。例如Namenode1管理Datanode1 /usr目录下的数据,以及Datanode2 /cus目录下的数据;Namenode2管理Datanode1 /share目录下的数据,以及Datanode2 /mart目录下的数据。因此同一个Datanode上的数据可分属不同Namenode管理。

由此新的HDFS可具备多个Namenode,不同Namenode上的元数据没有关联,互不干扰,进而实现了Namenode的水平扩展。每个Namenode分为ANN和SNN来实现HA。

MRv1改进为独立的YARN

在Hadoop 1.0中,JobTracker同时具备两个功能:

1,resource management :即监控集群中的所有机器情况:是否有机器失败,加入新机器如何处理,各个机器的空闲状态。以及统计现有资源,并在后续分配给各个用户提交的任务。

2,job scheduling/monitoring。

YARN则将二者分为了独立的Resourse Manager和Application Master。

Resourse Manager负责全局的资源管理。

每个node上都有一个NodeManager,用于监控本机器的资源情况并报告给RM,同时也是任务执行的容器container。

一个Application是指通常意义上的一个MR job或一个DAG。一个application就有一个AM,负责生命周期内的所有工作。AM在container中执行。

工作过程如下:当客户端提交作业时,RM申请资源,申请到资源后,通知Nodemanager在一个node上的container中启动AM。AM将作业分解为若干任务后,向RM再次请求资源。成功后AM直接与分配到的多个node上的Nodemanager通信,并在对应的container中启动并监控计算任务。AM在部分任务完成时,就开始逐步向RM释放占用的资源。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值