从今天开始新的系列:Hadoop总结篇

之前的hadoop学习篇由于是学习过程中随手记下来的一些内容,不具有系统性。所以在这个系列中,将凭着这段时间的研究心得,来记录一些自认为比较重要的东西。

本系列的主要参考书目是《Hadoop技术内幕:深入解析Yarn架构设计与实现原理》

比如作业从提交到执行到写出结果,将有一个从浅到深,逐步深入的过程。另外一些开发过程中使用到的比较零碎的东西,将会以外篇的形式记录。

hadoop版本:2.7.X

由于是第一篇,那么先来个综述吧。

学习hadoop我们到底要学些什么?

在2.x以后,hadoop的体系结构基本按如下三部分划分:

第一部分就是HDFS文件存储系统。就像我们操作系统的任意一种存储系统一样,这个模块决定了文件存在哪里,怎么存取。只不过他被hadoop集成使用。

主要的进程有三个: NameNode  DataNode SecondaryName 这三个类,是有main函数的

第二部分就是计算框架mapreduce,同hadoop1.x里的实现基本一致

第三部分是调度框架yarn

yarn的作用是什么?调度!这个词是精髓,调度资源,调度任务。

主要进程:resourceManager ApplicationMaster,NodeManager这三个类,也是有main函数的。

我们要学的,主要就是这三部分内容。

下面先概括的说一下执行一个job的基本工作流程:

resourceManager 接到客户端提交的任务,会申请资源(container),本质是在集群中的一台机器上,与其上的NodeManager协调,在资源上启动ApplicationMaster。

然后把job的控制权交给ApplicationMaster。后者接管后,根据任务的描述信息,去向resourceManager 申请运行task的资源。根据resourceManager 的回馈(资源可用情况描述),与可用的节点(NodeManager)协调,启动task任务。

task任务启动,那么就使用计算框架内容执行具体的计算了。

而hdfs文件读取,贯穿于整个job执行阶段。

这里有必要说明一下,Job 和Application的关系,其实两者是一个东西在不同阶段的描述。提交的时候叫Job,提交后,hadoop系统跑起来后,那就是Application了。就好像一个人小时候在家里,家人都叫乳名。上学后,就用正式名字来称呼了。

下一篇将从资源调度框架yarn开始后讲起。

04-30 05:54