gpt4 book ai didi

hadoop - 在 Hadoop MapReduce 中实现偏斜数据的范围分区

转载 作者:可可西里 更新时间:2023-11-01 15:48:53 25 4
gpt4 key购买 nike

我有一个以日期值作为键的数据集。但是,我的数据是倾斜的,这意味着日期越近,以该日期为键的记录就越多。因此,散列分区(Hadoop MR 中的默认设置)是不合适的,因为它会均匀分布键,使特定的 reducer 过载。这就是我决定编写自定义分区程序的原因。关于如何在 Hadoop MR 中实现范围分区的任何线索,因为我的研究到目前为止只产生了研究论文。

最佳答案

我认为没有太多需要研究的地方。

该类是 org.apache.hadoop.mapreduce.Partitioner,您可以选择实现 org.apache.hadoop.conf.Configurable 作为“传递”的方式参数”到分区程序。例如,与键的散列相比,BinaryPartitioner 允许您在要分区的字节数组中设置左右偏移量。根据您的数据,这甚至可能就足够了

然后,通过扩展 Partitioner 类,您必须实现 getPartition 方法以根据您自己的输入数据和逻辑返回一个整数。您已将总分区数作为参数,所以不用担心。

然后,您只需在 JobConf 中指定您的作业使用该 Partitioner。

如果您尝试使用 Spark、Hive、Pig 等来执行此操作,您需要确保您的类位于作业的 YARN 类路径中

关于hadoop - 在 Hadoop MapReduce 中实现偏斜数据的范围分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53352352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com