hadoop将分区分配给reducer

标签 hadoop hadoop-partitioning

出于负载平衡的原因,我想在 Hadoop 环境中创建比 reducer 更多的分区。有没有办法将分区分配给特定的 reducer ,如果是,我可以在哪里定义它们。我写了一个单独的 Partitioner,现在想用特定的分区来解决特定的 reducer。

预先感谢您的帮助!

最佳答案

分配是为 reducer 完成的。创建的分区与选择的 reducer 数量一样多。您可以通过以下方式选择 reducer 的数量

job.setNumReduceTasks(n);

数量 n 不必受您拥有的物理 reducer 数量的限制。只有一些等待才能获得下一个减少槽。在您的分区程序代码中,您可以实现将键分配给特定分区所需的逻辑。

但是,我认为通过超出物理可用的 reducer 插槽的数量无法实现任何效率,因为它只会导致等待下一个 reducer 插槽。

关于hadoop将分区分配给reducer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232609/

相关文章:

java - Hadoop 配置文件输出 - 在哪里和什么?

hadoop - 新用户SSH hadoop

apache-spark - 在 Spark 中加入多个表的有效方法 - 设备上没有剩余空间

scala - Scala Spark 作业需要多长时间才能处理一个文件中的一百万行?

hadoop - 如何将关系数据库转换为一个 Bigtable

mongodb - 使用 Sqoop 从 MongoDB 中提取数据写入 HDFS?

hadoop - 从 Jenkins 访问Hive查询

hadoop - Sqoop 导入 : composite primary key and textual primary key

sql - 如何通过在配置单元的分区表中选择另一列来覆盖列值

hadoop - 替代 hadoop 提供的默认 hashpartioner