eclipse连hadoop1.2.1运行wordcount

1.在eclipse新建一个mapred工程

eclipse连hadoop1.2.1运行wordcount_第1张图片

2.我们使用hadoop官方的WordCount程序,从官方源码中拷贝出WordCount源码,链接hadoop官方源码下载,如何从官方下载源码下来,参考文章:Windows下Cygwin环境的Hadoop安装- 在Eclipse中重新编译hadoop的jar包 ,使用的是TortoiseSVN从官方svn下载下来,我使用的版本是1.2.1

3.我们使用的是官方的WordCount,所以尽量保证不修改WordCount的代码,所以我们新建的类的包名也要和官方的一致,如下图:

但是得修改main方法,修改main方法,内容如下:

public static void main(String[] args) throws Exception {

    Configuration conf = new Configuration();

    args = new String[] {"input", "newout"};

    String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();

    if (otherArgs.length != 2) {

      System.err.println("Usage: wordcount <in> <out>");

      System.exit(2);

    }

    Job job = new Job(conf, "word count");

    job.setJarByClass(WordCount.class);

    job.setMapperClass(TokenizerMapper.class);

    job.setCombinerClass(IntSumReducer.class);

    job.setReducerClass(IntSumReducer.class);

    job.setOutputKeyClass(Text.class);

    job.setOutputValueClass(IntWritable.class);

    FileInputFormat.addInputPath(job, new Path("hdfs://192.168.0.115:9000/user/xuer/input"));

    FileOutputFormat.setOutputPath(job, new Path("hdfs://192.168.0.115:9000/user/xuer/output"));

    System.exit(job.waitForCompletion(true) ? 0 : 1);

  }

4.导入hadoop的lib文件夹下的jsp-2.1文件夹下的包,新建hadoop项目时,默认导入了hadoop的lib文件夹下的包(这里导入的hadoop就是我们在eclipse-preferences-Hadoop Map/redurce配的hadoop目录),但是再下一级的jsp-2.1并没有导入,需要我们导入。

5.右键Run as —— Run on Hadoop即可

6.此时报错"Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700",参考Win7环境下Eclipse连接Hadoop报错简单解决:重编译FileUtil.java。注意1.要导入jsp-2.1下的包。2.hadoop-core的jar包要替换2个地方,linux集群和本地window环境下的hadoop目录。

参考文章:Hadoop集群(第7期)_Eclipse开发环境设置的3.4 创建WordCount类小节。

你可能感兴趣的:(eclipse连hadoop1.2.1运行wordcount)