Hadoop架构、组件、及其术语汇总和理解
创始人
2024-01-30 01:14:20
0

推荐大象教程,介绍Hadoop、HDFS、MapReduce架构和工作原理相对来说非常的清晰。其内容是与《Hadoop the Definitive Guide》基本一致的。讲解的很细致、细节,又带了一些个人的理解和举例子,比较易懂,是比Hadoop官网更值得一看的入门教程。

Hadoop 教程 | Hadoop 教程

HDFS 教程 | HDFS 教程

MapReduce 教程 | MapReduce 教程

或者 51CTO的这个Hadoop专题系列文章:

 https://blog.51cto.com/u_12279910/category14/p_1

中文名称/问题基本概念理解/名词解释/个人理解和举例备注
MapReduce 键值对,什么时候需要自己来定义和处理? 平时拉取数据的时候并没有定义key使用 Hadoop 的时候,键和值并非是数据的固有属性,它只是在对数据做分析时人为选择的一种策略。MapReduce 把处理过程分成两个阶段:Map 阶段和 Reduce 阶段。每个阶段的输入数据和输出数据都是以键值对的形式出现。
1、当模式是静态的时候,我们可以直接使用模式的列,比如Hive表。
2、如果模式是非静态的,就不能用列的,因为没有列的概念了,只能使用键和值来处理数据。比如自己写MapReduce处理方法。
参考博文:https://blog.51cto.com/u_12279910/category14/p_2
 MapReduce 框架是怎么生成键值对的??

InputSplit(拆分键值对) 和RecordReader(存储的就是键值对)相互交互,将数据转成键值对的形式。
MapReduce 过程中,在数据传输给 mapper 之前,数据首先被转换成键值对,因为 mapper 只能处理键值对形式的数据。
Hadoop MapReduce 生成键值对的过程如下:
(1)InputSplit:这个是数据的逻辑表示形式。单个独立的 Mapper 处理的数据就是由 InputSplit 提供的。
(2)RecordReader:它和 InputSplit 交互,并且把数据分片转换成适合 Mapper 读取的记录,这里的记录其实就是数据的键值对形式。默认情况下,RecordReader 使用 TextInputFormat 把数据转换成键值对。RecordReader 和 InputSplit 的交互直到文件读取完成才停止。

在 MapReduce 框架里面,map 函数处理某个键值对并发出一定数量的键值对,Reduce 函数处理按相同键分组的值,并发出另一组键值对作为输出。map 的输出类型应该和 reduce 的输入类型一致。比如:
Map: (K1, V1) -> list (K2, V2)
Reduce: {(K2, list (V2 }) -> list (K3, V3)
K2,V2 数据类型是要保持一致的。
 
Hadoop 中生成键值对需要依赖什么?Hadoop 中键值对的生成取决于数据集和所需的输出。通常,键值对在4个位置指定:Map 输入、Map 输出、Reduce 输入和 Reduce 输出。
1、Map 输入
map 输入默认把数据文件的行数作为键(key),数据行对应的内容作为值。可以对 InputFormat 进行定制化开发,可以修改这个默认设置。
2、Map 输出
Map 主要负责过滤数据,并为数据基于键分组提供基础。
Key:它可能是字段、文本、对象,Reducer 端会根据 Key 对数据做分组和聚合。
Value:它可能是字段、文本、对象。它会被单独的 reduce 函数处理。
3、Reduce 输入:Map 的输出作为 Reduce的输入,也就是说,Reduce 的输入数据和 Map 输出数据是一样的。
4、Reduce 输出: 这个取决于所需要的输出是怎么样的。
MapReduce 键值对举例
假如有个存储在 HDFS 的文件的内容如下:
John is Mark Joey is John
1.利用 InputFormat,我们就可以知道这个文件是怎么被分片和读取的。默认情况下,RecordReader 使用 TextInputFormat 把这个文件转换成键值对数据。
Key:这个是键值对的键,它是数据行的偏移量(行号)。
Value:值就是数据行具体内容,不包含行终止符。

根据上文件的内容,具体的 Key 和 Value 的内容如下:
Key 是 0
Value 是  John is Mark Joey is John
Hadoop工作原理Hadoop系列之Hadoop工作原理(2)_51CTO博客_hadoop【 
Hadoop MapReduce计算框架中,有多少个工种? 各自负责的职责功能是什么?
把这些默默工作的工种都列出来,理解其工作内容,表示敬意

生产设备工具(生产资源): CPU、内存、磁盘、网络
生产资料:数据
生产人员:Yarn、ResourceManager、ApplicationMaster、NodeManager、Job/Job-DAG、
生产人员的工作和管理技能:
模拟现实世界的项目管理、团队组成、工作岗位和职责。
拟人化来理解Hadoop这个团队是如何完成 来自需求方(我)的一个数据计算任务的。
模拟一次Hadoop工作间的现场参观。了解其团队人员组成、岗位职责划分、生产资料的调度/分发/加工/存储、生产工具管理、项目管理、突发状况/风险管理、结果交付等。
它的职责是什么?
它的直接下属是谁?
为什么这个团队里需要有这么个角色?
它的工作或管理技能手段是什么?
Yarn 一个资源管理系统,其作用就是把资源管理和任务调度/监控功分割成不同的进程。Yarn 有一个全局的资源管理器叫 ResourceManager,每个 application 都有一个 ApplicationMaster 进程。一个 application 可能是一个单独的 job 或者是 job 的 DAG (有向无环图)。

在 Yarn 内部有两个守护进程,分别是 ResourceManager 和 NodeManager。ResourceManager 负责给 application 分配资源,而 NodeManager 负责监控容器使用资源情况,并把资源使用情况报告给 ResourceManager。这里所说的资源一般是指CPU、内存、磁盘、网络等。
 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...