浅谈对Hadoop中HDFS、MapRecuce及YARN的初步认知

1.Hadoop简要介绍

1.1Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:
• 高可靠性
• 高效性
• 高可扩展性
• 高容错性
• 成本低
• 运行在Linux平台上
• 支持多种编程语言
由于Hadoop 1.0版本有很多不足,后出现Hadoop 2.0版本。Hadoop 2.0增加了YARN完成资源管理与调度。两版本之间的不同如下图所示(图中Others包括:storm、spark等):

这里写图片描述

这里写图片描述

目前Hadoop的项目结构不断丰富发展,已经形成了一个丰富的Hadoop生态系统:
这里写图片描述

2.HDFS重要组成部分及工作原理

2.2.HDFS(分布式文件存储系统)以块为存储单位,默认一个块为64MB,一个文件将被分为多个块。HDFS块的大小影响了一个分片的大小,分片为逻辑上的分片,一个分片对应一个map任务

这里写图片描述

一般分片大小设为HDFS块的大小,便于读写操作。
2.3.HDFS的2.0版本增加了新的特性HDFS HA(热备)和HDFS Federation,具体原理如图:

这里写图片描述

这里写图片描述

2.4.HDFS主要组件有:NameNode、DataNode、SecondaryNameNode:
这里写图片描述
下面将一一说明三个组件,NameNode又称为主节点,主要负责对文件系统的管理,包括两大核心数据结构,FsImage和EditLog,具体功能总结如下图:

这里写图片描述

为了防止HDFS的所有更新操作直接NameNode的EditLog中,长期将导致EditLog文件不断增大,致使NameNode启动操作非常慢,HDFS引入了另外一个组成部分SecondaryNameNode。
SecondaryNameNode与NameNode定期通信,请求其停止使用EidtLog文件,将新的操作写入Edits.new中,SecondaryNameNode将EditLog与Fsimage文件合并,产生新的文件作为NameNode的新的FsImage文件,Edits.new文件作为新的EditLog文件,重复上述过程。具体工作原理如图:

这里写图片描述

DataNode(数据节点)是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,即DataNode具体去执行EditLog中的文件操作,并且向名称节点定期发送自己所存储的块的列表。
2.5HDFS读写过程描述如下图:

这里写图片描述

3.MapReduce重要组成部分及工作原理

3.1MapReduce将复杂的、运行于大规模集群上的并行计算过程高度抽象到两个函数:Map和Reduce,因此我们在编程时只需编写这两个函数即可。将MapReduce具体的工作过程描述如下图所示:

这里写图片描述

4.YARN重要组成部分及工作原理

4.1YARN资源调度管理框架,主要包含三大部分:ResourceManager、ApplicationMaster、NodeManager。
ResourceManager:负责处理客户端的请求,启动并监控ApplicationMaster,进行资源分配与调度。
AplicationMaster:接收ResourceManager下发的任务并分配给任务给NodeManager,为应用程序申请资源,并分进行任务调度与监控。
NodeManager:负责单一节点上的资源管理,并处理Application下发的任务。
4.2下面是三者功能的具体介绍:

这里写图片描述

这里写图片描述

这里写图片描述

4.3三者间具体的工作原理,形象表示如下图:

这里写图片描述

作为一名初学者,以上内容便是我对HDFS、MapReduce、YARN的一些学习心得,欢迎批评指正。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值