问题标签 [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 投票
2 回答
1093 浏览

hadoop - hadoop中不同reducer中的相同键

我正在经历一些非常奇怪的事情。我在不同的减速器中得到相同的密钥。我刚刚打印并收集了键和值。我的减速器代码如下所示。

控制台上的输出是

密钥1234529857009重复两次,异常。任何想法为什么会发生这种情况。

谢谢

0 投票
1 回答
16144 浏览

hadoop - 在 Oozie 工作流中的 MapReduce 作业中设置 Reducer 的数量

我有一个五节点集群,其中三个节点包含 DataNodes 和 TaskTracker。

我通过 Sqoop 从 Oracle 导入了大约 1000 万行,并在 Oozie 工作流中通过 MapReduce 对其进行处理。

MapReduce 作业大约需要 30 分钟,并且只使用了一个 reducer。

编辑 - 如果我单独运行 MapReduce 代码,与 Oozie 分开,job.setNumReduceTasks(4)正确建立 4 个减速器。

我尝试了以下方法手动将reducer的数量设置为四个,但没有成功:

在 Oozie 中,在 map reduce 节点的标签中设置以下属性:

在 MapReduce java 代码的 Main 方法中:

我也试过:

我的地图功能看起来与此类似:

我认为 ID 有 80,000 个不同的值。

我的 Reduce 函数与此类似:

Mapper 中发出的自定义对象实现了 WritableComparable,但 Reducer 中发出的其他自定义对象没有实现 WritableComparable。

以下是有关系统计数器、作业计数器和 map-reduce 框架的日志,其中指定仅启动了一个 reduce 任务。

编辑:我修改了 MapReduce 以引入自定义分区器、排序比较器和分组比较器。出于某种原因,代码现在启动了两个 reducer(当通过 Oozie 调度时),但不是四个。

mapred.tasktracker.map.tasks.maximum在每个 TaskTracker(和 JobTracker)上将属性设置为 20,重新启动它们但没有结果。

0 投票
1 回答
179 浏览

python - 在 Map reduce Python 中按文件和日期计算文件

我有一个映射器,它给了我这样的话,

其中第一个值是单词,然后是该单词在第 3 列中提到的那一天的出现次数。

我写了一个减速器,它可以选择作为苹果的键,然后得到它的总数。

所以输出是这样的

但我需要输出为,

知道我应该如何修改我的映射器吗?

我在 Amazon EMR Hadoop Streaming 上运行这个 Map reduce 作业。

编辑:下面的代码完美运行,但我得到的输出为:

任何想法 ?

0 投票
2 回答
163 浏览

java - 设置地图任务数量

在配置 Map Reduce 作业时,我知道可以使用 方法设置 reduce 任务的数量job.setNumReduceTasks(2);

我们可以设置地图任务的数量吗?

我没有看到任何方法可以做到这一点。

如果没有这样的功能,有人知道为什么这个框架有能力有超过 1 个 reduce 任务,但不能超过 1 个 map 任务吗?

0 投票
1 回答
3163 浏览

hadoop - Hadoop上理想的reducer数量是多少?

正如 Hadoop wiki 给出的计算理想的 reducer 数量是 0.95 或 1.75 * (nodes * mapred.tasktracker.tasks.maximum)

但是什么时候选择0.95,什么时候选择1.75?决定这个乘数时考虑的因素是什么

0 投票
3 回答
342 浏览

clojure - 调整 clojure reducers 库性能

为什么使用 reducers 库进行映射/归约的性能比普通的 map/reduce 差?

我有两个杀死后两个,因为它需要无限长的时间。这里有什么问题?

编辑: 似乎其他语言也有类似的问题。Scala 似乎只突破了一百万。为什么 Scala 并行集合有时会导致 OutOfMemoryError?. 虽然 clojure reducers 在 100 万时比正常速度快。

0 投票
1 回答
85 浏览

java - 从 reducer 中将列数据作为一行发送

我正在尝试处理一个 csv 文件。 In map()我将把每一列作为一个值发送给reducer。 In reducer我将找到最小值和最大值并进一步处理。处理后我需要上下文。写入值。但尝试以特定方式输出。

在减速器中,我正在处理每一列,但我需要输出整个row 即 col1 的值,col2 的值,col3 的值,col4 的值。

从 reducer 处理后的样本数据

预期产出

是否可以为每次迭代处理 reducer 中的每个不同键

任何建议

0 投票
0 回答
512 浏览

java - 在hadoop MapReduce中获取0个输出记录

我在hadoop中有以下代码,其中mapper和reducer如下:

驱动方法如下:

即使我已经从 reducer 发出输出,我也会收到消息为 map output records = 10 和 reduce output records = 0?减速器的输出在哪里消失了?

谢谢。

0 投票
2 回答
6601 浏览

hadoop - Hadoop MapReduce:关于 reducer 数量的说明

在 MapReduce 框架中,mapper 生成的每个 key 都使用一个 reducer。

所以你会认为在 Hadoop MapReduce 中指定 Reducer 的数量没有任何意义,因为它取决于程序。但是,Hadoop 允许您指定要使用的 reducer 的数量(-D mapred.reduce.tasks=# of reducers)。

这是什么意思?减速器数量的参数值是否指定了减速器的机器资源数量,而不是实际使用的减速器数量?

0 投票
1 回答
1565 浏览

hadoop - mapreduce 条件概率

如何使用映射器在我的减速器中进行概率聚合;

我正在尝试在 Hadoop 上为以下任务实现“条纹”方法和“对”方法,但我想知道如何在多个映射器之间进行通信以及如何在我的减速器中进行面向概率的聚合。

  • 每对物品的共现,Count (A, B)=# of transactions 同时包含 A 和 B,条件概率 Prob(B|A)=Count(A,B)/Count(A)。
  • 每个三元组项目的共现,Count (A,B,C) =# of transactions 包含 A 和 B,条件概率 Prob(A|B,C)=Count(A,B,C)/计数(B,C)
  • 每行记录一次交易(一起购买的一组物品):输入数据集是具有以下格式的交易数据:

    25 52 164 240 274 328 368 448 538 561 630 687 730 775 825 834 39 120 124 205 401 581 704 814 825 834 35 249 674 712 733 759 854 950 39 422 449 704 825 857 895 937 954 964 15 229 262 283 294 352 381 708 738 766 853 883 966 978 26 104 143 320 569 620 798 7 185 214 350 529 658 682 782 809 849 883 947 970 979 227 390 71 192 208 272 279 280 300 333 496 529 530 597 618 674 675 720 855 914 932 ==================================================== ======================================**