Eclipse开发mapreduce程序环境搭建

    Eclipse作为一个常用的java IDE,其使用程度虽然比不上idea那么强大,但是对于习惯使用eclipse开发的人来说,也不失为一个可以选择的IDE。对于喜欢eclipse开发的人来说,就是想让他更加的智能化,更加的友好,比如开发mapreduce程序,我们可以利用hadoop-eclipse-plugin这个插件让eclipse能够可视化查看hdfs上的文件系统,并且可以创建mapreduce程序而不需要额外添加hadoop的jar包。

    这里介绍eclipse4.12.0版本结合hadoop-eclipse-plugin-2.7.0插件来开发mapreduce程序。hadoop-eclipse-plugin插件是一个jar包,可以在网上下载,也可以自己通过源码编译,编译的话,需要ant,jdk,hadoop安装目录,以及hadoop环境变量HADOOP_HOME,具体教程可以看这篇文章

    eclipse版本信息:

    hadoop-eclipse-plugin-2.7.0.jar:

    1)、将插件放入eclipse安装目录的plugins目录下,然后重启eclipse即可,我们如果在Window-Preferences选项中看到了Hadoop Map/Reduce选项,说明我们已经安装成功了,注意,一定要找对hadoop与eclipse-hadoop-plugin插件版本对应关系,否则可能会出现启动ecipse而报错的问题,或者插件无法正常使用。

    2)、插件有了,我们需要指定本机hadoop安装目录。Window->Preferences->Hadoop Map/Reduce->Hadoop install directory:这里指定本机hadoop安装目录,我这里是E:\apache-hadoop\hadoop-2.7.0

    3)、插件安装成功了,我们可以在新建project向导的时候看到Map/Reduce Project选项,也可以在Window->show view下查看Map/Reduce Locations选项。

    4)、为了能够方便看到hdfs的信息,我们新建一个mapreduce locations。这里需要填写准确的主机名和端口号,如果是hadoop-2.7.0版本,可以直接填写Host:虚拟机IP,Port:9000。一定要注意这里的端口信息。

这里填写完毕,点击保存,然后在面板上选择Project Explorer,我们可以看到多了DFS Locations选项,依次点击展开,我们会看到hdfs上的文件目录以及文件信息:

    5)、新建mapreduce工程:File->New->Project:选择Map/Reduce Project。

项目创建完毕,结构如下,会自动加入本机hadoop安装目录下的hadoop相关依赖jar包,不用额外手动导入jar包,非常方便。

    6)、编写简单的wordcount程序:

package com.xxx.hadoop.mapred;
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;
/**
 * 最简单的词频统计程序
 */
public class WordCountApp {

	public static class WordCountMapper extends Mapper<Object, Text, Text, IntWritable>{
		private IntWritable one = new IntWritable(1);
		protected void map(Object key, Text value, Context context) throws java.io.IOException ,InterruptedException {
			StringTokenizer tokenizer = new StringTokenizer(value.toString());
			while(tokenizer.hasMoreTokens()) {
				Text word = new Text(tokenizer.nextToken());
				context.write(word, one);
			}
		};
	}
	
	public static class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable>{
		private IntWritable result = new IntWritabl
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值