返回信息流小渣在学习MapReduce在图算法里的应用, 出现以下问题, 向大神请教:
我实现WritableComparable接口自定义的key类型,其实就是一个节点的集合, 比较是按集合的大小\对应位置上的字符串字典排序来比较的
map阶段 输出 (a, b, e) -> TAG (TAG是一个标记,请忽略其含义)
(a, b, e) -> d
(a, d, e) -> TAG
但是 reduce阶段得到的(key, valueList)却是
(a, b, e) -> [TAG]
(a, d, e) -> [d, TAG]
实在是搞不懂个中缘由(是compare函数写错了吗,感觉不是) .....在此向大家求助
[ema1]
[ema1][ema1][ema1][ema1][ema1]
这是一条镜像帖。来源:北邮人论坛 / java / #39748同步于 2015/4/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
关于MapReduce中shuffle错乱的问题
w09210100
2015/4/4镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 yyy8848 的大作中提到: 】
: 不懂,帮顶。
: Hadoop shuffle不会错吧,这三个元素被shuffle到同一个reducer中了吧,是不是你reducer写错了?
。。。我是在reducer的最开始把key -> valueList 给输出来 看到这样的结果
MapReduce的shuffle阶段,会把键值相同的元素都shuffle到一起,然后交给同一个reduce操作,相同键值不同的元素就变成了valuelist了。这难道不是MapReduce的基本原理么
【 在 w09210100 的大作中提到: 】
: 小渣在学习MapReduce在图算法里的应用, 出现以下问题, 向大神请教:
: 我实现WritableComparable接口自定义的key类型,其实就是一个节点的集合, 比较是按集合的大小\对应位置上的字符串字典排序来比较的
: map阶段 输出 (a, b, e) -> TAG (TAG是一个标记,请忽略其含义)
: ...................
【 在 libenchao 的大作中提到: 】
: MapReduce的shuffle阶段,会把键值相同的元素都shuffle到一起,然后交给同一个reduce操作,相同键值不同的元素就变成了valuelist了。这难道不是MapReduce的基本原理么
:
对呀....所以不知道错在哪了 来看看大家有没有遇到过相同的问题, 现在觉得可能的原因就是自定义key的compare函数有问题 我把compare的过程输出了, 发现(a, b, e) 和 (a, d, e)这连个key根本没有发生比较
那ade的结果是肿么来的?
【 在 w09210100 的大作中提到: 】
:
: 对呀....所以不知道错在哪了 来看看大家有没有遇到过相同的问题, 现在觉得可能的原因就是自定义key的compare函数有问题 我把compare的过程输出了, 发现(a, b, e) 和 (a, d, e)这连个key根本没有发生比较