Hadoop样例代码中的wordcount使用了combiner。
但对于map的输出形式与reduce输出形式不一样的应用,直接使用reduce函数进行combiner会出错。
因此,必须自己重写combiner。
在撰写含有combiner的应用时,需注意,对于所有Map的输出,并非一定都经过combiner步骤,可能直接的读写就进入了reduce。
而且combiner虽然能减少IO,但是会增加Map时间(等于多做了一次reduce),能否提高总体性能要看实际情况而定。
Hadoop样例代码中的wordcount使用了combiner。
但对于map的输出形式与reduce输出形式不一样的应用,直接使用reduce函数进行combiner会出错。
因此,必须自己重写combiner。
在撰写含有combiner的应用时,需注意,对于所有Map的输出,并非一定都经过combiner步骤,可能直接的读写就进入了reduce。
而且combiner虽然能减少IO,但是会增加Map时间(等于多做了一次reduce),能否提高总体性能要看实际情况而定。