我正在使用Hive运行Hadoop作业实际上应该uniq
在许多文本文件中排队.在reduce步骤中,它为每个键选择最近时间戳记录.
Hadoop是否保证具有相同键的每个记录(通过映射步骤输出)将转到单个reducer,即使在群集中运行了许多Reducer?
我担心在具有相同密钥的一组记录中间发生shuffle后,mapper输出可能会被拆分.
密钥的所有值都将发送到同一个reducer.看到这个Yahoo! 教程进行更多讨论.
此行为由分区程序确定,如果使用默认分区程序以外的分区程序,则可能不是这样.
实际上,不!您可以创建一个Partitioner
在每次getPartition
调用时将相同的密钥发送到不同的reducer .对于大多数应用程序来说,这通常不是一个好主意.