Hadoop2源码分析-Hadoop V2初识
1.概述
在完成分析Hadoop2源码的准备工作后,我们进入到后续的源码学习阶段。本篇博客给大家分享,让大家对Hadoop V2有个初步认识,博客的目录内容如下所示:
- Hadoop的渊源
- Hadoop V2部分项目图
- 各个包的功能介绍
本篇文章的源码是基于Hadoop-2.6.0来分析,其他版本的Hadoop的源码可以此作为参考分析。
2.Hadoop的渊源
其实,早年Google的核心竞争力是它的计算平台,Google对外公布的论文有一下内容:
- GoogleCluster
- Chubby
- GFS
- BigTable
-
MapReduce
可见MapReduce并不是Hadoop所独有的功能,之后Apache基金会得到类似的项目,这些项目有隶属于Hadoop项目,分别是:
- ZooKeeper(Chubby)
- HDFS(GFS)
- HBase(BigTable)
- MapReduce(Hadoop 这里是HDFS和MapReduce的统称)
类似于这种思想的开源项目还有很多,如:Yahoo用Pig来处理巨大数据,Facebook用Hive来进行用户行为分析等。Hadoop的两大核心功能分别为HDFS和MapReduce,MapReduce是一个适合做离线计算的框架,它依赖于HDFS,HDFS作为一个分布式文件存储系统,是所有这些项目的基础支撑。下图为HDFS的支撑图,如下图所示:
3.Hadoop V2部分项目图
Hadoop包与包之间依赖的关系较为复杂,究其原因为HDFS提供了一个分布式文件存储系统,该系统提供庞大的API,使得分布式文件系统底层的实现,依赖于某些高层的功能,这些功能互相引用,形成网状的依赖关系。举个例子,如conf包,它用于读取系统配置文件,依赖于fs包,主要是读取相应的配置文件时,需要使用到文件系统,而部分文件系统的功能都被抽象在fs包中。下图时Hadoop V2项目的核心部分依赖包,如下图所示:
后面的章节,主要给大家分享以下几个部分,如:mapreduce,fs,hdfs,ipc,io,yarn。
4.各个包的功能介绍
下面对上图列出来的各个包做下介绍说明,各个包的功能如下所示:
- tools:提供命令行工具,如DistCp,archive等等。
- mapreduce v2:Hadoop V2版本对Map/Reduce的实现。
- filecache:让HDFS拥有本地缓存,以便加快MR的数据访问速度。
- hdfs v2:Hadoop V2的分布式文件系统实现。
- fs:文件系统的抽象包,为支持多种文件系统(有可能还有其他的文件系统)规范统一的文件访问接口。
- ipc:依赖 io 提供的编码和解码功能。
- io:编码和解码数据,以便在网络中传输。
- net:对网络功能进行封装,如Socket。
- conf:配置系统的参数。
- util:工具类。
- ha:配置高可用的集群,使集群拥有两个NameNode(active和standby)。
- yarn:Hadoop V2 版本新添加的特性,用于资源调度和管理。
5.总结
Hadoop V2在底层设计上对比Hadoop V1是有区别的,新增HA,使得Hadoop V1中存在的单点问题得到了很好得解决;Hadoop V2新增Yarn系统,使得集群得资源管理和调度更加得完美,大大减少ResourceManager的资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。同时,使得多种计算框架可以运行在一个集群中。
6.结束语
这篇文章就和大家分享到这里,如果大家在研究和学习的过程中有什么疑问,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hadoop2源码分析-MapReduce篇
1.概述 前面我们已经对Hadoop有了一个初步认识,接下来我们开始学习Hadoop的一些核心的功能,其中包含mapreduce,fs,hdfs,ipc,io,yarn,今天为大家分享的是mapreduce部分,其内容目录如下所示: MapReduce V1 MapReduce V2 MR V1和MR V2的区别 MR V2的重构思路 本篇文章的源码是基于hadoop-2.6.0-src.tar.gz来完成的。代码下载地址,请参考《Hadoop2源码分析-准备篇》。 2.MapReduce V1 下面我们给出第一代的MapReduce的架构图,如下所示: 上图描述了第一代MapReduce框架的流程以及设计思路,下面为大家解释下这张图的具体含义: 当我们编写完MR作业后,需要通过JobClient来提交一个job,提交的信息会发送到JobTracker模块,这个模块是第一代MapReduce计算框架的核心之一,它负责与集群中的其他节点维持心跳,为提交的作业分配资源,管理提交的作业的正常运作(失败,重启等)。 第一代MapReduce的另一个核心的功能是TaskTracker,在各个Ta...
- 下一篇
高可用Hadoop平台-答疑篇
1.概述 这篇博客不涉及到具体的编码,只是解答最近一些朋友心中的疑惑。最近,一些朋友和网友纷纷私密我,我总结了一下,疑问大致包含以下几点: 我学 Hadoop 后能从事什么岗位? 在遇到问题,我该如何去寻求解决方案? 针对以上问题,我在这里赘述下个人的经验,给即将步入 Hadoop 行业的同学做个参考。 2.我学 Hadoop 后能从事什么岗位 目前 Hadoop 相关的工作大致分为三类:应用,运维,二次开发 2.1应用 这方面的主要工作是编写MapReduce作业,利用Hive之类的套件来进行数据分析或数据挖掘,Hadoop在这里只是一个基础平台,仍然是需要自己编写相应的逻辑去实现对应的业务。从事这方面的工作,你至少要懂一门编程语言,如Java,Shell,Python等。由于Hadoop的源码是用Java语言编写的,目前业界Java方面的Hadoop社区活跃度相对较高,Shell和Python对应的活跃度较少。目前培训机构都是在这方面进行培养的比较多,你只需要对Hadoop的框架构造,基本的组织结构有所了解,理解MapReduce的编程框架和模式,懂得代码调优,能够使用Hadoop...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装