千家信息网

MapReduce 实验 (一) 原理

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,官网http://hadoop.apache.org/hadoop三大组件HDFS:分布式存储系统https://hadoop.apache.org/docs/stable/hadoop-projec
千家信息网最后更新 2026年11月02日MapReduce 实验 (一) 原理

官网

http://hadoop.apache.org/

hadoop三大组件

HDFS:分布式存储系统

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html

MapReduce:分布式计算系统

http://hadoop.apache.org/docs/r2.8.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

YARN: hadoop 的资源调度系统

http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/YARN.html

回想起以前做过一个中铁轨道激光测量轨道平整的项目,一段50KM的数据库大小是400G,光是找空间复制出来就是头大,现在有了分布式的数据库和计算平台就可以非常方便的进行。

Mapper

映射器将输入键/值对映射到一组中间键/值对中。

  • 映射是将输入记录转换为中间记录的单个任务。转换后的中间记录不需要与输入记录相同的类型。给定的输入对可以映射到零或多个输出对。
  • Hadoop的MapReduce框架产生一个地图的任务由每个InputSplit工作InputFormat生成。
  • 总的来说,制图的实现是通过工作传递到工作setmapperclass(类)的方法。框架调用图(writablecomparable,写,上下文)每个键/值对,任务在InputSplit对。然后应用程序可以覆盖清除(上下文)方法来执行任何必需的清理工作。
  • 输出对不需要与输入对相同的类型。给定的输入对可以映射到零或多个输出对。输出对被调用的上下文所写(writablecomparable,可写)。

应用程序可以使用计数器报告其统计数据。

  • 所有与给定输出键相关联的中间值随后由框架分组,并传递给减速器以确定最终输出。用户可以通过指定一个比较器通过工作控制分组。setgroupingcomparatorclass(类)。
  • 对映射器输出进行排序,然后对每个减速器进行分区。分区的总数与任务的减少任务数相同。用户可以控制键(因此记录)通过实现一个自定义的分割器去哪。
  • 用户可以选择指定一个合成器,通过工作。setcombinerclass(类),执行中间输出的地方聚集,这有助于减少从制图到减速器的数据量。
  • 中间排序的输出总是存储在一个简单(键、键、值、值)格式中。应用程序可以控制的话,又如何,中间输出被压缩和compressioncodec可以通过配置。

Reducer

  • 减速减少一组中间值份额较小的一组值的关键。
  • 数量减少了工作组通过工作的用户。setnumreducetasks(int)。
  • 总的来说,减速器的实现是通过岗位工作经工作。setreducerclass(类)方法,可以重写它初始化自己。框架调用减少(writablecomparable,个<写>,<上下文)为每个关键方法(值列表)>在分组的输入对。应用程序可以重写清理(上下文)执行任何所需的清理方法。
  • 减速器有3个主要阶段:洗牌,排序和减少。

Shuffle洗牌

  • 输入减速器的排序输出的映射。在这一阶段的框架带来的所有映射器输出相应的分区,通过HTTP。

Partitioner分区

  • partitions空间分区是关键。
  • 分区分配的关键的中间图的输出。"密钥或密钥的子集的冰derive)使用的分区,typically A市的哈希函数。的总数partitions冰茶一样的号码reduce任务的工作。这hence米,江森自控的reduce任务的中间密钥和hence记录)的冰后期两个还原。
  • hashpartitioner是默认的分区。

Counter计数器

  • 计数器是MapReduce应用程序报告其统计数据的工具。
  • 映射器和减速器实现可以使用计数器报告统计数据。
  • Hadoop的MapReduce的附带了一个普遍有用的映射器,减速器库,并计划。

其实MapReduce讲的就是分而治之的程序处理理念,把一个复杂的任务划分为若干个简单的任务分别来做。另外,就是程序的调度问题,哪些任务给哪些Mapper来处理是一个着重考虑的问题。MapReduce的根本原则是信息处理的本地化,哪台PC持有相应要处理的数据,哪台PC就负责处理该部分的数据,这样做的意义在于可以减少网络通讯负担。最后补上一副经典的图来做最后的补充,毕竟,图表往往比文字更有说服力。

如果那个400G的数据库还在,分成400个任务,每个任务进行1g左右数据处理,理论上速度是原来的400倍。

具体请参考google mapreduce

https://wenku.baidu.com/view/1aa777fd04a1b0717fd5dd4a.html

MapReduce如何工作

让我们用一个例子来理解这一点 -

假设有以下的输入数据到 MapReduce 程序,统计以下数据中的单词数量:

Welcome to Hadoop Class

Hadoop is good

Hadoop is bad

MapReduce 任务的最终输出是:

bad

1

Class

1

good

1

Hadoop

3

is

2

to

1

Welcome

1

这些数据经过以下几个阶段

输入拆分:

输入到MapReduce工作被划分成固定大小的块叫做 input splits ,输入折分是由单个映射消费输入块。

映射 - Mapping

这是在 map-reduce 程序执行的第一个阶段。在这个阶段中的每个分割的数据被传递给映射函数来产生输出值。在我们的例子中,映射阶段的任务是计算输入分割出现每个单词的数量(更多详细信息有关输入分割在下面给出)并编制以某一形式列表<单词,出现频率>

重排

这个阶段消耗映射阶段的输出。它的任务是合并映射阶段输出的相关记录。在我们的例子,同样的词汇以及它们各自出现频率。

Reducing

在这一阶段,从重排阶段输出值汇总。这个阶段结合来自重排阶段值,并返回一个输出值。总之,这一阶段汇总了完整的数据集。

在我们的例子中,这个阶段汇总来自重排阶段的值,计算每个单词出现次数的总和。

MapReduce如何组织工作?

Hadoop 划分工作为任务。有两种类型的任务:

  1. Map 任务 (分割及映射)
  2. Reduce 任务 (重排,还原)

如上所述

完整的执行流程(执行 Map 和 Reduce 任务)是由两种类型的实体的控制,称为

  1. Jobtracker : 就像一个主(负责提交的作业完全执行)
  2. 多任务跟踪器 : 充当角色就像从机,它们每个执行工作

对于每一项工作提交执行在系统中,有一个 JobTracker 驻留在 Namenode 和 Datanode 驻留多个 TaskTracker。

  • 作业被分成多个任务,然后运行到集群中的多个数据节点。
  • JobTracker的责任是协调活动调度任务来在不同的数据节点上运行。
  • 单个任务的执行,然后由 TaskTracker 处理,它位于执行工作的一部分,在每个数据节点上。
  • TaskTracker 的责任是发送进度报告到JobTracker。
  • 此外,TaskTracker 周期性地发送"心跳"信号信息给 JobTracker 以便通知系统它的当前状态。
  • 这样 JobTracker 就可以跟踪每项工作的总体进度。在任务失败的情况下,JobTracker 可以在不同的 TaskTracker 重新调度它。
任务 输出 数据 工作 阶段 输入 程序 减速器 处理 多个 射器 应用程序 框架 系统 应用 上下 上下文 例子 报告 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 万易互联网科技 小马过河互联网科技 左右互联网络科技 居家互联网科技有限公司 互联网科技公司招聘 互联网科技热点资讯 字节跳动和互联网科技 广州市恰铎互联网科技有限公司 银川新华互联网科技学校联系电话 互联网保险科技创业 互联网金融科技展 长沙茂晟互联网科技有限公司 互联网金融科技名词解释 智帮互联网科技公司最近动向 广东工业互联网大赛深圳学泰科技 互联网科技快讯热点 现代科技的标志之一的互联网 利用互联网等科技手段 互联网科技企业文化 喔噻互联网科技有限公司 北京路客互联网科技有限公司 重生之互联网科技帝国 科技互联网技术 万易互联网科技 极限挑战互联网科技 中科明德北京互联网科技 为客找房互联网科技公司怎么样 智帮互联网科技公司最近动向 云南互联网科技学费
0