`

[Hadoop] 新API容易遇到的一个问题: expected LongWritable recieved Text

阅读更多

我们在之前一篇WordCount的文章里面使用了下面这条语句:

 

job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);

这本身不起眼的一句话,其实有一个容易错的地方。

 

如果你遇到

写道
Type mismatch in key from map: expected org.apache.hadoop.io.LongWritable, recieved org.apache.hadoop.io.Text

 这样的错误,那基本上就是因为前面设置了TextInputFormat造成的。

下面是SO上面的一个解释:

StackOverflow 写道
You are using TextOutputFormat which emits LongWritable key and Text value by default, but you are emitting Text as key and IntWritable as value. You need to tell this to the famework.

解决方案:

job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);

 或者一开始就不要这样设置,类似如下即可:

public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
		// TODO Auto-generated method stub
		
		Configuration conf = new Configuration();
		Job job = new Job();
		job.setJarByClass(Dedup.class);
		job.setMapperClass(Map.class);
		job.setCombinerClass(Reduce.class);
		job.setReducerClass(Reduce.class);
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(Text.class);
//		job.setInputFormatClass(TextInputFormat.class);
//		job.setOutputFormatClass(TextOutputFormat.class);
//		job.setMapOutputKeyClass(Text.class);
//		job.setMapOutputValueClass(Text.class);
		FileInputFormat.addInputPath(job, new Path("/home/hadoop/DataSet/Hadoop/Dedup-1"));
		FileOutputFormat.setOutputPath(job, new Path("/home/hadoop/DataSet/Hadoop/Dedup-output"));
		System.out.println(job.waitForCompletion(true));
	}

  

分享到:
评论

相关推荐

    hadoop-yarn-api-2.5.1-API文档-中文版.zip

    Maven坐标:org.apache.hadoop:hadoop-yarn-api:2.5.1; 标签:apache、hadoop、api、yarn、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...

    教你如何查看API及使用hadoop新api编程

    教你如何查看API及使用hadoop新api编程

    Hadoop2.6_API.chm

    Hadoop2.6版本稳定版API文档CHM文件

    hadoop api.doc

    hadoop api hadoop apihadoop api hadoop api hadoop api

    Hadoop.chm HadoopAPI Hadoop英文版最新API

    从零开始构建一个网络搜索引擎是一个很大的计划,并且往往会遇到很多的问题。不仅是因为编写一个爬虫并索引页面的软件比较复杂,而且,一个这样的项目需要一个专门的团队来实现。项目中也包含许多随时都需要修改的...

    hadoop-yarn-api-2.5.1-API文档-中英对照版.zip

    赠送jar包:hadoop-yarn-api-2.5.1.jar; 赠送原API文档:hadoop-yarn-api-2.5.1-javadoc.jar; 赠送源代码:hadoop-yarn-api-2.5.1-sources.jar; 包含翻译后的API文档:hadoop-yarn-api-2.5.1-javadoc-API文档-...

    教你如何查看API及使用hadoop新api编程 高清完整版PDF下载

    教你如何查看API及使用hadoop新api编程 高清完整版PDF下载

    Hadoop 0.20.2 API文档

    开源分布式架构Hadoop 0.20.2版的Java API文档,使用Hadoop都需要它

    hadoop中文版API

    hadoop中文版API.chm文件,查找hadoop的类中方法、方法的用法等,方便、好用

    Hadoop2.7.4 API帮助文档

    Hadoop 2.7.4 API 帮助文档 ,这份帮助文档很全,包括了源码等等,你值得拥有。

    hadoop-api中文说明文档

    hadoop-api中文说明文档

    hadoop-yarn-api-2.7.3-API文档-中英对照版.zip

    Maven坐标:org.apache.hadoop:hadoop-yarn-api:2.7.3; 标签:apache、hadoop、yarn、api、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性...

    hadoop-yarn-api-2.6.5-API文档-中英对照版.zip

    Maven坐标:org.apache.hadoop:hadoop-yarn-api:2.6.5; 标签:apache、hadoop、api、yarn、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容...

    Hadoop API帮助文档

    Hadoop API帮助文档,学习Nutch和Hadoop必备

    hadoop的api

    hadoop的api手册,包含hadoop开放的编程接口及参数说明

    hadoop-api.rar

    hadoop-api.rar...介绍使用编码/解码器的典型实例(代码在org.hadoopinternal.compress包中)。其中,compress()方法接受一个字符串参数,用于指定编码/解码器,并用对应的压缩算法对...

    Hadoop 2.6.0 API CHM版 自制

    自己下载完整的API文档后编译的,Hadoop 2.6.0 API CHM版

    hadoop 1.2.1 api 最新chm 伪中文版

    Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的...

    hadoop-hdfs-2.6.5-API文档-中英对照版.zip

    Maven坐标:org.apache.hadoop:hadoop-hdfs:2.6.5; 标签:apache、hdfs、hadoop、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...

    hadoop-hdfs-2.7.3-API文档-中英对照版.zip

    Maven坐标:org.apache.hadoop:hadoop-hdfs:2.7.3; 标签:apache、hdfs、hadoop、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...

Global site tag (gtag.js) - Google Analytics