问题标签 [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.
hadoop - 在 reducer 上执行 Hadoop 组合器
我有一个长期运行的 MapReduce 工作,其中一些映射器比其他映射器花费更多的时间。
检查 Web 界面上的统计信息,我看到我的组合器也启动了减速器(其中大部分空闲,因为只有 2 个映射器仍在运行)。
尽管在所有映射器完成之前不浪费时间并进行一些预聚合似乎是合理的,但我找不到任何有关此行为的文档。谁能确认这确实是 Hadoop 的一个功能,或者只是在 Web 界面上显示错误?
apache-pig - 在 Pig 中计算行数的有效方法是什么?
在 Pig 中,获取计数的有效方法是什么?我们可以做一个 GROUP ALL,但是只给了 1 个 reducer。当数据量很大时,比如 n TB,我们可以尝试多个 reducer 吗?
apache - Hadoop 2.6 和 2.7 Apache Terasort 500GB 或 1TB
运行地图时,当减速器启动时,它从 0 变为 100 失败:
这是默认配置,每次都失败。
我插入到 xml 中的任何配置都已注释掉以找到此问题,但我仍然遇到仅在减少开始时作业失败的问题。
python - Pyspark - 减速器任务迭代值
我是第一次使用 pyspark。
我希望我的 reducer 任务迭代从映射器返回的值,就像在 java 中一样。
我看到只有累加器选项而不是迭代 - 就像在添加函数 add(data1,data2) => data1 是累加器一样。
我想在我的输入中输入一个包含属于键的值的列表。
这就是我想做的。任何人都知道是否有这样做的选择?
mapreduce - 值是否按键顺序进入 Cloudant reducer?
我正在为Cloudant上的数据库编写 map/reduce 代码。值在什么reduce(keys, values, rereduce)
时候按键顺序进入函数rereduce=false
?我认为他们会这样做,因为这就是我习惯于在 Hadoop 中工作的方式,但我在 Cloudant 文档中找不到任何明确说明他们这样做的内容。
hadoop - 如何在“插入”脚本中设置输出文件的数量或大小?
我在配置单元中有一个分区表“t1”,其中包含许多不同大小的数据文件(总计:900Mb)。我想减少文件数量,以便将更少的文件放入另一个表“t2”。表“t1”和“t2”是这样创建的:
我开发了这个脚本:
在带有 hive 0.10 的 CDH4 中,我得到:
现在,我想使用 hive 0.13.1 迁移到 CDH5。当我在 CDH5 中运行脚本时,我得到:
执行计划CDH4:
执行计划CDH5:
我尝试修改脚本:
脚本 1:
输出 1:
脚本 2:
输出 2(在这种情况下,SET mapreduce.job.reduces=0;
不起作用):
脚本 3:
输出 3:
尽管有多个 reducer,CDH5 中只写入了 1 个文件(500Mb)。
我的脚本有问题吗?可以设置reducers=0吗?如何在“插入”脚本中设置输出文件的数量或大小?
提前致谢。
java - Hadoop 应用程序找不到 Reducer
我正在尝试制作一个从 Hbase 表读取并将作业结果写入文本文件的 mapreduce 应用程序。我的驱动程序代码如下所示:
调用 initTableMapperJob 时,我得到一个 ClassNotFoundException: class reducername not found。
该类在同一个包内的另一个 java 文件中定义。我使用几乎相同的配置来尝试通常的 wordcount 示例并且工作正常。然后我改变了映射器的类型和它的配置方式,我得到了这个错误。有人能帮我吗?
编辑:reducer 类的代码是:
mapreduce - HBase-Mapreduce,使用 TableReducer 时的最佳化简器数量
我们正在使用 Map reduce 将数据写入 HBase。由于我们需要进行一些格式化,我们通过扩展 TableReducer 来实现我们自己的 reducer。此自定义减速器在生产和开发环境中的行为不同。收到以下错误
错误:org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException:失败 659 次操作:RegionTooBusyException:659 次,
从这里,我了解到冲洗没有正确完成。但是,在开发环境中也可以正常工作。
除了上述选项,我觉得配置 reducer 的数量也可能会影响发送到区域服务器的数据量。
我们正在使用 salt 来跨越区域服务器之间的行键。到目前为止,salt 为 20m,region server 的数量为 60。 salt 是否应该选择等于 region server 的数量以均匀地跨越记录?如果不是,如何在将数据加载到 Hbase 时确定减速器数量的最佳值。
此外,一般来说,客户端允许与 Hbase 交互的最大连接数是多少。在这里,我们使用 API 提供的 Map reducer,但一般来说,我们处理客户端到 Hbase 的连接,最大客户端连接数可以起到重要作用。在此先感谢您的帮助
dictionary - Clojure 将变换函数应用于地图的值
假设我有一张地图:
我如何迭代它以将所有内容转换为整数?
一个明显的解决方案是:
但感觉非常重复。
我觉得减少功能在这里可以做得很好,但我不确定如何。
java - hadoop reducer 没有跨集群分布
我用java写了一个mapreduce作业。输入文件的大小为 2GB。当我在一个 8 节点集群上运行我的代码时,我得到了 16 个slip,我可以从日志中看到它们在不同的节点上运行。但是,reducer 任务仅在“ONE 节点”上运行。我得到没有任何错误的输出。我检查了我的配置一切似乎都很好。
我试过了
job.setNumReduceTasks(100);
-D mapreduce.job.reduces=100
我也得到 100 个输出文件。映射器任务分布在节点之间,但不是减少任务。
我正在使用 cloudera 服务。