【发布时间】:2019-02-06 19:38:31
【问题描述】:
我正在使用 MapReduce 来处理我的数据。我需要将输出存储在日期分区下。我的排序键是日期字符串。现在,如果我在自定义分区器类中覆盖 getPartition 以返回以下内容:
return (formattedDate.hashCode() & Integer.MAX_VALUE) % numReduceTasks;
因为我们使用哈希和 Mod,在某些情况下我们返回相同的整数值
例如:
假设numReduceTasks=100
Now the date 2018-01-20 might have hash value as 101. so 101%100 = 1
Now take other date as 2018-02-20 and might have hash value as 201. so 201%100 = 1
正因为如此,我们最终将多个日期文件转到单个日期分区。这是不希望的。有关如何处理此问题的任何指示?
【问题讨论】:
标签: hadoop hive mapreduce bigdata partitioning