加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

学Hadoop你必须要知道的

发布时间:2019-08-07 04:23:50 所属栏目:教程 来源:大数据三十四号
导读:副标题#e# 文章目录: 一、理论知识 1.Hadoop的整体印象 2.Hadoop的优势 3.Hadoop可以做什么 4.Hadoop结构 4.1 Hadoop存储--HDFS 4.2 Hadoop计算--MapReduce 4.3 Hadoop资源管理--YARN 5.Hadoop生态 二、Hadoop实际操作 本文内容诸多借鉴,在借鉴处会表示出

4.Shuffle 阶段:这是“奇迹”发生的地方,MapReduce 的核心其实就是 Shuffle。那么 Shuffle 的原理呢?Shuffle 就是将 Map 的输出进行整合,然后作为 Reduce 的输入发送给 Reduce。简单理解就是把所有 Map 的输出按照键进行排序,并且把相对键的键值对整合到同一个组中。如上图所示,Bear、Car、Deer、River 是排序的,并且 Bear 这个键有两个键值对。

5.Reduce 阶段:与 Map 类似,这里也是用户编写程序的地方,可以针对分组后的键值对进行处理。如上图所示,针对同一个键 Bear 的所有值进行了一个加法操作,得到 这样的键值对。

6.输出:Reduce 的输出直接写入 HDFS 上,同样这个输出文件也是分块的。

用一张图表示上述的运行流程:MapReduce 的本质就是把一组键值对 经过 Map 阶段映射成新的键值对 ;接着经过 Shuffle/Sort 阶段进行排序和“洗牌”,把键值对排序,同时把相同的键的值整合;最后经过 Reduce 阶段,把整合后的键值对组进行逻辑处理,输出到新的键值对 。这样的一个过程,其实就是 MapReduce 的本质。

学Hadoop你必须要知道的

Hadoop MapReduce 可以根据其使用的资源管理框架不同,而分为 MR v1 和 YARN/MR v2 版本。

在 MR v1 版本中,资源管理主要是 Jobtracker 和 TaskTracker。Jobtracker 主要负责:作业控制(作业分解和状态监控),主要是 MR 任务以及资源管理;而 TaskTracker 主要是调度 Job 的每一个子任务 task;并且接收 JobTracker 的命令。

在 YARN/MR v2 版本中,YARN 把 JobTracker 的工作分为两个部分:

ResourceManager 资源管理器全局管理所有应用程序计算资源的分配。

ApplicationMaster 负责相应的调度和协调。

NodeManager 是每一台机器框架的代理,是执行应用程序的容器,监控应用程序的资源(CPU、内存、硬盘、网络)使用情况,并且向调度器汇报。

学Hadoop你必须要知道的

4.3 Hadoop资源管理–YARN

当 MapReduce 发展到 2.x 时就不使用 JobTracker 来作为自己的资源管理框架,而选择使用 YARN。这里需要说明的是,如果使用 JobTracker 来作为 Hadoop 集群的资源管理框架的话,那么除了 MapReduce 任务以外,不能够运行其他任务。也就是说,如果我们集群的 MapReduce 任务并没有那么饱满的话,集群资源等于是白白浪费的。所以提出了另外的一个资源管理架构 YARN(Yet Another Resource Manager)。这里需要注意,YARN 不是 JobTracker 的简单升级,而是“大换血”。同时 Hadoop 2.X 也包含了此架构。Apache Hadoop 2.X 项目包含以下模块。

  • Hadoop Common:为 Hadoop 其他模块提供支持的基础模块。
  • HDFS:Hadoop:分布式文件系统。
  • YARN:任务分配和集群资源管理框架。
  • MapReduce:并行和可扩展的用于处理大数据的模式。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读