使用Combiner遇到错误

找到原因:Mapper与Combiner的输出均要与Reducer对应

转载:http://blog.csdn.net/lucktroy/article/details/7957120

http://www.cnblogs.com/mdyang/archive/2011/07/12/data-intensive-text-prcessing-with-mapreduce-ch3_1.html

话说用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之输入输出类型相关推荐

  1. 大数据课程基础与商城,共享单车,互联网广告实战视频

    ├─01-JavaSE基础-15天 │  ├─javaSE-day01 │  │      01.什么是计算机软件--计算机能看懂的描述特定功能的剧本.mp4 │  │      02.什么数据软件开 ...

  2. ai 音乐创作 算法_我尝试使用AI复制我的创作过程,这很奇怪

    ai 音乐创作 算法 The speculative-fiction writer Philip K. Dick used amphetamines and other stimulants to t ...

  3. 编写代码的软件用什么编写的_团队编写代码

    编写代码的软件用什么编写的 Software is rarely written in a silo. Whether you're building the next social media ap ...

  4. 黑苹果英特尔网卡_英特尔如何失明和失去苹果业务

    黑苹果英特尔网卡 重点 (Top highlight) After 14 years of collaboration, Apple announced last month that it will ...

  5. 自动驾驶 l5 ai_强AI和弱AI的真实故事以及适用于自动驾驶汽车的信息

    自动驾驶 l5 ai Dr. Lance Eliot, AI Insider AI Insider博士Lance Eliot博士 [Ed. Note: For reader's interested ...

  6. Hadoop:The Definitive Guid 总结 Chapter 7 MapReduce的类型与格式

    MapReduce数据处理模型非常简单:map和reduce函数的输入和输出是键/值对(key/value pair) 1.MapReduce的类型 Hadoop的MapReduce一般遵循如下常规格 ...

  7. MapReduce输入输出的处理流程及combiner

    MapReduce 的输入输出 MapReduce 框架运转在<key,value> 键值对上,也就是说,框架把作业的输入看成是一组<key,value>键值对,同样也产生一组 ...

  8. mapreduce 丢数据_大数据之MapReduce详解

    1.什么是Map/Reduce,看下面的各种解释: (1)MapReduce是hadoop的核心组件之一,hadoop要分布式包括两部分,一是分布式文件系统hdfs,一部是分布式计算框,就是mapre ...

  9. Hadoop学习笔记—4.初识MapReduce

    一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个 编程模型 ,用以进行大数据量的计算.对于大 数据量的计算,通常采用的处理手法就是并行计算.但对许多开 ...

最新文章

  1. 五一到底去哪玩?哪个景点人少又好玩?手把手教你玩Python爬虫
  2. pandas 里面对nan的判断
  3. hihocoder #1103 : Colorful Lecture Note微软苏州校招笔试 1月10日(字符串处理+栈)
  4. 倒计时5天!云栖大会低代码峰会即将开幕!
  5. SAP BRF+ Interpretation模式与Generation模式的区别
  6. UI设计师必知:link和@import引用css文件方法的区别
  7. 文本框 价格 保留两位小数 讨论
  8. VMware Harbor现已加入Rancher社区Catalog
  9. 推荐自用黑苹果Clover引导主题
  10. VMware16的下载安装及搭建Linux环境
  11. 【模拟器】网工福音!华三模拟器HCL升级,部分功能超越eNSP和EVE!
  12. Linux下搭建打印机共享服务器(支持苹果AirPrint)
  13. 驱动板LVDS输出接口(发送器),液晶面板LVDS输入接口(接收器)
  14. 计算机打开资源管理器停止工作,windows资源管理器已停止工作,教您windows资源管理器已停止工作怎么解决...
  15. 计算机怎么没有word文档,word没了怎么回事 为什么电脑没有了word
  16. 解决React Navigation goBack()无效
  17. 财务工具 - 编写一个等额本息反推利率的计算器
  18. 计算机编程专业有哪些好的大学?
  19. OkHttp3使用详解
  20. 新邮政法规定:邮政企业对平常邮件损失不赔偿

热门文章

  1. 企业内部防泄密不完善造成重大损失案例(上)
  2. wps脚注转参考文献格式
  3. Openstack web界面登录异常处理
  4. 中兴面经-南京(9-7号一面)
  5. 3ds Max人物女性角色模型建模教程
  6. Avue中实现多选删除功能
  7. 专属程序员的浪漫520情人节送女朋友的生日祝福樱花雨3D相册
  8. oracle查询的默认排序,oracle 默认排序及认知
  9. pandas数据处理(四)--- 批量拆分、合并Excel文件
  10. 成为精英中的精英的五个重要思想