MapReduce之输入输出类型
来源:互联网 发布:淘宝职业差评师团队 编辑:程序博客网 时间:2024/06/10 08:10
话说用hadoop MapReduce编程有一阵子了,但是关于Mapper, Combiner, Reducer的输入输出类型居然花了我一整天。
我本以为Combiner的输入与Mapper的输出一致,Combiner的输出与Reducer的输入一致就可以了,就像图1:
图1 假想
我的程序Mapper输出是<Text, DoubleWritable>; Combiner的输入输出分别是<Text, DoubleWritable>, <Text, Text>; 然后Reducer的输入是<Text,Text>.
我本想逻辑上都没问题,但事与愿违,老出错.
在hadoop中,默认的job.setOutputkeyClass(*.class), job.setOutputValueClass(*.class)是针对Mapper与Reducer的,这里因为两者不同,我试着用job.setMapOutputKeyClass(*.class)与job.setMapOutputValueClass(*.class)区分. 但依然有错误.
在几经周折后,在看完一篇博文“《Data-intensive Text Processing with MapReduce》读书笔记第3章:MapReduce算法设计(1)”后,发现原来Mapper与Combiner的输出均要与Reducer对应(见图2),于是改了过来,终于通过,因为没有看过hadoop源码,所以也不知道它底层具体是如何实现的.
图2 实际
- MapReduce之输入输出类型
- MapReduce之输入输出类型
- MapReduce之输入输出类型
- MapReduce输入输出类型对应关系
- MapReduce输入输出类型、格式及实例,mapreduce输入输出
- MapReduce输入输出类型、格式及实例
- 【Hadoop】MapReduce输入输出格式之输入格式
- MapReduce输入输出
- MapReduce的输入输出格式
- Mapreduce的输入输出
- MapReduce的输入输出格式
- MapReduce的输入输出格式
- MapReduce的输入输出格式
- MapReduce的输入输出格式
- MapReduce的输入输出格式
- MapReduce进阶:多路径输入输出
- MapReduce进阶:多路径输入输出
- MapReduce 自定义输入输出(很有用)
- C++常用库函数
- 实现两个大数的加减乘除
- 使用Ant 实现批量打包Android应用
- HTML5标签篇
- AJAX-实现WEB页面局部动态刷新
- MapReduce之输入输出类型
- C#制作内存修改器
- 说说WCF中的可信赖会话 ReliableSession
- How to use Thread
- TCP Trace监听工具
- SHFileOperation一个问题
- SHFileOperation的一个问题(2)
- SHFileOperation的一个问题(3)
- Oracle中删除用户遇到的问题