问题标签 [reducers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3773 浏览

java - Hadoop 中的作业和任务调度

当我阅读这张幻灯片中的延迟公平调度时,我对 Hadoop 中的“作业调度”和“任务调度”这两个术语有点困惑。

如果我的以下假设有误,请纠正我:

  1. 默认调度器、容量调度器和公平调度器仅在用户调度多个作业时在作业级别有效。如果系统中只有一个工作,它们就不会发挥任何作用。这些调度算法构成了“作业调度”的基础

  2. 每个作业可以有多个 map 和 reduce 任务,它们是如何分配给每台机器的?如何为单个作业安排任务?“任务调度”的依据是什么?

0 投票
0 回答
115 浏览

networking - MapReduce 网络带宽

我正在尝试测量从映射器 Mapper_i 传输到减速器 Reducer_j 的每个 (key_a,value_a) 对所消耗的时间。

换句话说,我想知道 (key_a,value_a) 从离开 Mapper_i 到到达 Reducer_j 所用的时间?

反正有没有从映射器到减速器的传输时间?

0 投票
1 回答
2396 浏览

hadoop - hadoop中的全序分区器

我对totalorderpartitioner的概念完全陌生,我已经应用了这个概念,但我没有成功地产生全局排序。这是我的输入记录

这是我的映射器

这是我的减速机

这是我的工作相关代码

但记录没有得到排序。这是我的输出

我不知道我哪里出错了。谁能帮我解决这个问题?谁能告诉我输入采样是如何工作的。提前致谢

0 投票
2 回答
1032 浏览

hadoop - Hadoop - 将减速器编号设置为 0 但写入同一个文件?

我的工作是计算密集型的,所以我实际上只使用 Hadoop 的分发功能,我希望我的所有输出都在 1 个单个文件中,所以我将减速器的数量设置为 1。我的减速器实际上什么也没做......

通过将reducer的数量显式设置为0,我可以知道如何在映射器中控制以强制将所有输出写入同一个输出文件吗?谢谢。

0 投票
2 回答
194 浏览

hadoop - 分区器或多个输出

我想听听您对 Partitioner vs MultipleOutputs 的看法。
假设我有一个包含密钥的文件

我想要 2 个文件:一个文件包含以开头的键0:,另一个包含以1:. 我应该使用哪种方法:
1) 使用自定义分区器,它将解析键并为 getPartition() 返回 0 或 1。
2)在reduce阶段使用MultipleOutputs.write,通过解析key并为MultipleOutputs.write的参数 提供zeroor 。onenamedOutput

哪一个更好?对我来说,1) 更好,因为减速器处理单个文件。

0 投票
1 回答
2820 浏览

hadoop - Hadoop Reducers:如何确保 reducer 在多个节点上均匀运行

我有一个场景,我不确定减少处理器将发生在什么位置。

i)我有一个输入文本文件,它有 1000 个整数,在 1 到 4 之间的平衡范围内。

ii) 假设有一个 4 节点集群,每个节点有 12 个槽,其中 4 个被分配为减速器 - 总共有 16 个减速槽

iii)我已经在驱动程序中设置了减速器的数量:

iii)最后给定我有一个分区方法是

1) 一世。我如何强制它在每个节点上使用 1 个减速器(让 3 个其他本地减速器空闲)而不是在每个节点上运行多个减速器来处理 reduce IE 如何确保在一个节点上不使用 4 个插槽并在节点 2,3&4 空闲 12 个插槽。

ii. Hadoop MR 是否管理资源说:“节点 X 是最空闲的,我将在那里生成一个减速器......”

2)如果您对某个键有偏差但打算对其进行分组,您能否为该键生成多个减速器,例如,将一个随机整数添加到值“4”的种子值并使用分区器添加 3 个额外的减速器来处理减速器 4、5、6 和 7 中的值“4”?

这对偏斜有用吗?

0 投票
1 回答
2227 浏览

hadoop - Hadoop 作业卡在地图 0% 减少 0%

我正在运行一个 hadoop 作业,它卡在“map 0% reduce 0%”。更具体地说,映射器都处于“STARTING”状态,似乎从未真正开始执行。

我试过查看日志,但除了一些弃用消息之外,并没有真正看到任何东西。我不确定要寻找什么,想知道是否有人有任何建议?

编辑1:

标准错误日志:

0 投票
2 回答
2330 浏览

hadoop - 减速器和映射器可以在同一个数据节点上吗?

我已经开始阅读有关大数据和 Hadoop 的内容,所以这个问题对你来说可能听起来很愚蠢。

这是我所知道的。

每个映射器处理少量数据并产生中间输出。在此之后,我们有洗牌和排序的步骤。

现在,Shuffle = 将中间输出移动到各自的 Reducer,每个 Reducer 处理一个特定的键/键。

那么,一个数据节点是否可以在其中运行 Mapper 和 Reducer 代码,或者我们每个节点都有不同的 DN?

0 投票
1 回答
577 浏览

hadoop - 输出键为 NullWritable 时的 Hadoop 减速器输出顺序

我正在编写一个hadoop最终输出是bmp图像的应用程序。我将输出格式更改为byte,这是我的问题:reducer output order如果我将输出键设置为 ,会发生NullWritable什么?

0 投票
2 回答
1047 浏览

java - Hadoop MapReduce:在Reduce类(Java)中将先前值存储在内存中时出现奇怪的结果

如果我希望存储迭代器的当前值以在 Reduce 方法中与迭代器的下一个值进行比较,Hadoop 要求我克隆它,而不是简单地将其引用分配给临时变量。

我即将将代码发布到我的减速器。

您将看到两个部分:

  1. Eclipse中测试的主要方法
  2. 在Hadoop中执行的reduce方法

你会注意到这两行代码是相同的,除了以下几点:

  1. main 方法从我硬编码到其中的 ArrayList 中获取 Iterator,而 reduce 方法从 mapper 方法中获取 Iterator。
  2. main 方法当然不会执行 context.write。

这是两者几乎共享的代码:

您会注意到,在每个循环结束时,我将刚刚使用的 MMI(“currentMMI”)的引用设置为对象变量“previousMMI”。然后,在下一个循环中,我将 next() 的引用设置为 currentMMI。当我在 Eclipse 中执行我的 main 方法时,以下查询评估为 false,正如预期的那样:

但是,当在 Hadoop 中执行时,currentMMI 和 previousMMI 对于以下两个查询总是评估为 true:

只有当我将行更改为时previousMMI = currentMMIpreviousMMI = new MMI(currentMMI)他们才会评估为假。(我为 MMI 类创建了一个构造函数,它本质上是对传入参数的浅层克隆)。

为什么在hadoop中使用reducer而不是在main方法中时我必须克隆而不是设置引用?

我现在要复制并粘贴reducer 类,它有两部分:eclipse 测试的main 方法和Hadoop 中实际使用的reduce 方法。

当我在 eclipse 中使用静态值执行main 方法时,这是来自 stdout 的截断结果:

这是我执行 hadoop jar 时截断的结果:

为什么我必须为 Hadoop 而不是在 Eclipse 中克隆它?