当前位置:  开发笔记 > 大数据 > 正文

使用Hadoop,我的Reducer是否可以保证使用相同的密钥获取所有记录?

如何解决《使用Hadoop,我的Reducer是否可以保证使用相同的密钥获取所有记录?》经验,为你挑选了2个好方法。

我正在使用Hive运行Hadoop作业实际上应该uniq在许多文本文件中排队.在reduce步骤中,它为每个键选择最近时间戳记录.

Hadoop是否保证具有相同键的每个记录(通过映射步骤输出)将转到单个reducer,即使在群集中运行了许多Reducer?

我担心在具有相同密钥的一组记录中间发生shuffle后,mapper输出可能会被拆分.



1> Karl Anderso..:

密钥的所有值都将发送到同一个reducer.看到这个Yahoo! 教程进行更多讨论.

此行为由分区程序确定,如果使用默认分区程序以外的分区程序,则可能不是这样.



2> Bkkbrad..:

实际上,不!您可以创建一个Partitioner在每次getPartition调用时将相同的密钥发送到不同的reducer .对于大多数应用程序来说,这通常不是一个好主意.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有