美文网首页
hadoop0.20.2+eclipse3.5爬过的坑

hadoop0.20.2+eclipse3.5爬过的坑

作者: zycxnanwang | 来源:发表于2018-09-13 21:19 被阅读0次

前提

  • hadoop版本

    hadoop0.20.2

    我也不知道为什么会用这么老的版本,引以为鉴

  • eclipse版本

    eclipse3.5

    hadoop0.20.2的插件只能运行在eclipse3.5

    找个eclipse3.5版本的很不容易

  • java版本

    jdk1.7.0_80

    eclipse3.5只能用jdk1.7,不然会报错

安装Hadoop注意

  • 建议必须新建一个用户,各个主机节点必须相同, 不然会出现难以意料的错误
  • 配置什么的可以参考我的这几篇blog
  • hadoop各个主机节点注意关闭防火墙

eclipse里的配置

  • 插件配置

    • 插件名hadoop-0.20.2-eclipse-plugin.jar 下载地址

    • eclipse3.5 下载地址

    • 将插件复制到eclipse的相应plugins目录

    • 重启eclipse, windows->preferences->hadoop/map-reduce,选择你安装的hadoop目录

      image
  • 配置MapReduce/Location

    image
  • 新建MapReduce工程, 如图

    image
  • src里面新建WordCount.java, 复制如下代码

    import java.io.IOException;
    import java.util.StringTokenizer;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.IntWritable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Job;
    import org.apache.hadoop.mapreduce.Mapper;
    import org.apache.hadoop.mapreduce.Reducer;
    import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
    import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
    import org.apache.hadoop.util.GenericOptionsParser;
     
    public class WordCount {
      public static class TokenizerMapper extends
              Mapper<Object, Text, Text, IntWritable> {
          private final static IntWritable one = new IntWritable(1);
          private Text word = new Text();
     
          public void map(Object key, Text value, Context context)
                  throws IOException, InterruptedException {
              StringTokenizer itr = new StringTokenizer(value.toString());
              while (itr.hasMoreTokens()) {
                  word.set(itr.nextToken());
                  context.write(word, one);
              }
          }
      }
     
      public static class IntSumReducer extends
              Reducer<Text, IntWritable, Text, IntWritable> {
          private IntWritable result = new IntWritable();
     
          public void reduce(Text key, Iterable<IntWritable> values,
                  Context context) throws IOException, InterruptedException {
              int sum = 0;
              for (IntWritable val : values) {
                  sum += val.get();
              }
              result.set(sum);
              context.write(key, result);
          }
      }
     
      public static void main(String[] args) throws Exception {
          Configuration conf = new Configuration();
          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(otherArgs[0]));
          FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
          System.exit(job.waitForCompletion(true) ? 0 : 1);
      }
    }
    
  • Run as -> Run Configurations-> 如图

    image

相关文章

  • hadoop0.20.2+eclipse3.5爬过的坑

    前提 hadoop版本hadoop0.20.2我也不知道为什么会用这么老的版本,引以为鉴 eclipse版本ecl...

  • iOS - 爬过的坑

    长时间运行的线程可能需要新建额外的autoreleasepool来频繁的释放它的对象. 取决于实际代码表现, 适当...

  • 记爬过的坑

    坑一、 在使用jQuey()选择器方法选元素的时候含有特殊字符(. [ ] * 等)之类,如jQuery(“#m...

  • iOS中爬过的坑

    TableView 在ios10的tableView中遇到过tableView偏移的问题(即离上方导航栏有一定的间...

  • Vue,Element 爬过的坑

    1. 浏览器地址栏出现 #/ 解决办法:http://www.cnblogs.com/zhuzhenwei918/...

  • React Native爬过的坑

    1、小米手机上跑RN,先去把开发者选项中的MIUI优化选项关闭掉; 2、在调试的时候,一enable remote...

  • RxSwift-爬过的坑

    RxSwift是一个非常好用的框架,如果你喜欢用Swift开发,那么RxSwift是你不二的选择,函数响应式的结果...

  • 音频变速爬过的坑

    sonic和soundtouch两个库都用过。用法差不多。项目上线用的是soundtouch。做视频编辑,本来op...

  • paypal支付爬过的坑

    申请账号,creat app (需要邮件确认) okhttp3貌似在paypal里面有,不需要再次添加引用或者导入jar

  • VirtualApk demo爬过的坑

    程序员需要跨过山河大海,哪有没有走过的坑。一直想学习一下滴滴的插件化,一直没有时间,今天抽空弄了一下,还是有一些细...

网友评论

      本文标题:hadoop0.20.2+eclipse3.5爬过的坑

      本文链接:https://www.haomeiwen.com/subject/oibggftx.html