Hadoop之Eclipse开发环境搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenpengjia006/article/details/63368283

记录下自己在搭建Eclipse开发环境中踩过的坑,感谢@fxsdbt520的无私帮助。在此不再重复Hadoop安装,需要了解的朋友可以移步centos安装hadoop2.7.2伪分布式观摩。

  1. 首先需要声明,由于其中的Jar包是经过Eclipse MARS版本编译的,为了保险起见,最好使用相同版本的Eclipse,否则可能出现一些兼容性问题。
  2. 准备工作
    • 安装好Hadoop
    • 在开发机器安装JDK及Eclipse MARS
    • 下载百度网盘中的文件,里面包含了Hadoop2.7.2版本及所需插件包以及Hadoop版本的Hello World。
  3. 将Hadoop解压到任意目录,然后配置Hadoop环境变量。
    • HADOOP_HOME Hadoop解压目录
    • HADOOP_PREFIX Hadoop解压目录
    • HADOOP_BIN_PATH 指定值 %HADOOP_HOME%\bin
    • 在path变量最后中添加“;%HADOOP_HOME%\bin”。
    • 命令行中输入hadoop version,若出现Hadoop版本消息,说明环境变量配置成功。
      image
  4. 替换相关文件
    • 将hadoop-eclipse-plugin-2.7.2.jar复制到Eclipse中plugins目录下。打开Eclipse(如果已打开清重启..),如果左边栏出现DFS Loctaions,则说明插件添加成功。如下图所示:
    • image
    • 将hadoop-common-2.2.0-bin-master压缩包中的文件解压出来,替换掉hadoop-2.7.2/bin目录下的重复文件。
    • 将hadoop.dll文件复制到系统文件夹下的system32目录下
  5. 设定Eclipse中关于Hadoop配置。
    • 指定Eclipse中的Hadoop本地安装路径
    • image
    • Eclipse中Winddow–>Show View–>MapReduce Tools–>Map/Reduce Locations
    • 在Map/Reduce Locations中右键New Hadoop Location,开始配置Hadoop位置。
    • image
    • image
    • 此处不再赘述,修改相关配置就Ok。
    • 如果配置正确的话,刷新下就可以看到你的HDFS中的文件啦。
    • image
    • 注意:需要预先在HDFS中创建一个文件夹,连接才不会报错,切记!
  6. 导入示例demo。
    • 新建Map/Reduce项目,将SRC下面目录全部引入。
    • 导出Hadoop服务端的core-site.xml、hdfs-site.xml以及mapred-site.xml导出,覆盖项目中的配置文件。
    • 将SRC目录下的wordcount1.txt、wordcount2.txt上传到HDFS中
      image
    • 由于包里附带的demo是在服务器上运行的版本,所以需要对Main方法做一些改动。改动如下:
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
//      conf.set("hbase.zookeeper.quorum", "master");
//      conf.set("hbase.zookeeper.property.clientPort", "2181");
//      String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
//      if (otherArgs.length < 1) {
//          System.err.println("Usage: wordcount <in> [<in>...] <out>");
//          System.exit(2);
//      }
        Job job = Job.getInstance(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://hadoop-master:9000/test/input"));
        FileOutputFormat.setOutputPath(job, new Path("hdfs://hadoop-master:9000/test/output"));

        // 删除输出目录
        HDFSUtils.deleteDir(new Path("hdfs://hadoop-master:9000/test/output"));
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }

注意:我这边是配置了hosts,所以直接写的域名,具体路径需要根据你的HDFS上传路径做对应的修改。
7. 激动人心的时刻就要到了,右键项目 Run As –> Run On Hadoop,在疯狂的一段日志输出后,大功告成。
image
现在你可以查看指定的Hadoop输出目录了,输出结果如下:
image
注意:如果MapReduce所指定输出结果路径在执行前就已经存在的话同样会报错,这一点请注意。

猜你喜欢

转载自blog.csdn.net/chenpengjia006/article/details/63368283