hadoop - 将输入拆分到 hadoop 中的 reducer

标签 hadoop mapreduce hadoop-partitioning reducers

这个问题与我的另一个问题有点相关 Hadoop handling data skew in reducer . 但是,我想问一下是否有一些可用的配置设置,以便如果说达到最大 reducer 内存然后在另一个数据节点上产生一个新的 reducer ,其余数据在上下文中? 或者甚至可能在同一个数据节点上,这样说在 reduce 方法中读取上下文中的一些 x 记录直到达到某个限制,然后在新的 reducer 中读取剩余的记录?

最佳答案

您可以尝试一个组合器,它可以通过在数据传递到 reducer 之前进行可能的聚合来减少处理更多键值对的单个 reducer 的工作负载。如果您正在进行连接,那么您可以在 Pig 中尝试 skewed join。它涉及 2 个 MR 作业。在第一个 MR 中,它对一个输入进行采样,如果它发现一个倾斜度如此之高以至于能够装入内存的键,它将将该键拆分为多个 reducer。对于样本中标识的记录以外的其他记录,它会进行默认连接。对于倾斜的输入,它复制输入并将其发送到两个 reducer 。

关于hadoop - 将输入拆分到 hadoop 中的 reducer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32637746/

相关文章:

java - 如何使用Java Hadoop MapReduce以降序对数据集中的列进行排序?

python - Apache Pig - 如何维护分布式查找表供我的 python UDF 访问?

hadoop - 错误 terasort.TeraSort : Input path does not exist: maprfs:/user/user01/–DXmx1024m

ubuntu - 使用HDFS中的文件到Apache Spark

python - 自动化 Hadoop 批处理命令

python - hadoop 流 : how to see application logs?

hadoop - 已经分区的输入数据能否改进 hadoop 处理?

java - Hadoop Map任务/Map对象

java - Maven在尝试连接到Cloudera URL以获取CDH Jar位置时显示错误

hadoop - 如何正确设置hadoop block 大小?