Hadoop——Reduce阶段 Values(迭代器)只能遍历一次

来源:互联网 发布:dba数据工程师 编辑:程序博客网 时间:2024/06/04 19:19

Hadoop——Reduce阶段 Values(迭代器)只能遍历一次

在我写mapreduce程序的时候,发现程序没有显式的bug,log也显示map阶段的输出,reduce阶段的输入都没有问题,但是reduce阶段的输出byte 为0. 观察代码,自己reduce阶段的代码非常简单——仅仅遍历了两次value

for(Text val : values){    ...}...for(Text val : values){    ...}

于是,猜测values的迭代器不会重新回到开头,导致在MapReduce的 wordcount代码中 reduce阶段的输出为0 byte。修改代码,在第一次循环的同时,使用一个vector记住values的值,第二次在vector上操作。

结果·就成功了 推测自己的推理应该是对的。希望大家不要再踩坑了

阅读全文
0 0