在Windows平台下的IntelliJ IDEA运行Map-Reduce程序

一、Hadoop下载

首先下载Hadoop包,将他安装到你喜欢的位置。
Hadoop包(2.6.5)下载地址:
http://apache.fayea.com/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz

二、在Windows下配置Hadoop环境变量

找到“此电脑”图标
在这里插入图片描述
右键选择“属性”,在左侧菜单栏中选择“高级系统设置”
在这里插入图片描述
选择“环境变量”
在这里插入图片描述
在界面下方找到“新建”
在这里插入图片描述
新增“HADOOP_HOME"系统变量,变量值为第一步Hadoop的安装路径
在这里插入图片描述
确定后在下方找到“Path”
在这里插入图片描述
点击编辑,新增一个环境变量“%HADOOP_HOME%\bin”
在这里插入图片描述

三、创建一个项目

创建一个新的项目,选择Java EE
​​​​
取一个自己喜欢的名字,这里用的是“TestMR”

四、导入jar包

首先我们找到Hadoop的安装目录,找到“D:\xxx\hadoop-2.6.5\share\hadoop”路径(xxx是你自己选择的文件夹),将里面所有的jar包复制粘贴到一个新文件夹中。
在这里插入图片描述
在这里插入图片描述
配置项目(也可以使用快捷键Ctrl+Alt+Shift+S)
在这里插入图片描述
打开以后选择左侧的“Modules”,点击右侧的“+”号,选择“JARs or directories”
此处我们导入之前准备好的jar包文件夹
在这里插入图片描述
接着我们要打包配置在这里插入图片描述
在这里插入图片描述
选中建立好的项目
在这里插入图片描述

五、编写Map-Reduce程序

此处运行的是一个WordCount程序,样本代码如下:

MyMapper.java

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;

public class MyMapper extends Mapper<LongWritable, Text,Text,IntWritable>{
	protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException{
		//得到输入的每一行数据
		String line = value.toString();

		//通过空格分隔
		String[] words = line.split(" ");

		//循环遍历输出
		for(String word : words){
			context.write(new Text(word), new IntWritable(1));
		}
	}
}

MyReducer.java

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
import java.io.IOException;

public class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
	protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
		Integer count = 0;
		for (IntWritable value : values) {
			count += value.get();
		}
		context.write(key, new IntWritable(count));
	}
}

MyWc.java

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.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class MyWc {
	public static void main(String[] args)throws Exception{
		//创建配置对象
		Configuration conf = new Configuration();

		//创建job对象
		Job job = Job.getInstance(conf,"wordcount");

		//设置运行job的类
		job.setJarByClass(MyWc.class);

		//设置mapper 类
		job.setMapperClass(MyMapper.class);

		//设置reduce 类
		job.setReducerClass(MyReducer.class);

		//设置map输出的key value
		job.setMapOutputKeyClass(Text.class);
		job.setMapOutputValueClass(IntWritable.class);

		//设置reduce 输出的 key value
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(IntWritable.class);

		//设置输入输出的路径
		FileInputFormat.setInputPaths(job, new Path(args[0]));
		FileOutputFormat.setOutputPath(job, new Path(args[1]));

		//提交job
		boolean b = job.waitForCompletion(true);
		if(!b){
			System.out.println("wordcount task fail!");
		}
	}
}
六、配置编译器

在运行前还要配置运行环境
在这里插入图片描述
选择“Application”
在这里插入图片描述
输入输出路径(项目文件夹下路径后加 input 和 output 即可)
F://CSCodes//IntelliJ//TestMR//input
F://CSCodes//IntelliJ//TestMR//output
在这里插入图片描述
将你所需要处理的文件导入input文件夹。
在这里插入图片描述

七、运行

在这里插入图片描述
在这里插入图片描述
结果
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值