0
点赞
收藏
分享

微信扫一扫

MapReduce之Eclipse本地运行

  前面我们介绍的wordcount案例是在Eclipse中写好代码,然后打成jar包,然后在Linux环境中执行的,这种方式在我们学习和调试的时候就显得非常的不方便,所以我们来介绍下直接在Eclipse运行的本地运行方式。

本地运行模式

本地运行模式的特点

  1. mapreduce程序是被提交给LocalJobRunner在本地以单进程的形式运行。
  2. 而处理的数据及输出结果可以在本地文件系统,也可以在hdfs上。
  3. 本地模式非常便于进行业务逻辑的debug,只要在eclipse中打断点即可

环境准备

  1. Windows系统中我们需要安装hadoop环境。

MapReduce之Eclipse本地运行_MapReduce

具体操作参考此文​

  1. 配置环境变量信息

MapReduce之Eclipse本地运行_apache_02

MapReduce之Eclipse本地运行_apache_03

测试

MapReduce之Eclipse本地运行_本地运行_04

package com.sxt.mr.wc;

import java.io.IOException;

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;

/**
* MapReduce的启动类
* @author dengp
*
*/
public class WcTest {

public static void main(String[] args) throws Exception {
// 1.获取配置文件对象
Configuration conf = new Configuration(true);

conf.set("mapreduce.framework.name", "local");
// 输出到HDFS文件系统中
// conf.set("fs.defaultFS", "hdfs://hadoop-node01:9000");
// 输出到本地文件系统
conf.set("fs.defaultFS", "file:///");

// 2.获取Job实例
Job job = Job.getInstance(conf);

// 3.设置类对象
job.setJarByClass(WcTest.class);

// 4.设置对应的自定义的MapTask和ReduceTask
job.setMapperClass(MyMapperTask.class);
job.setReducerClass(MyReduceTask.class);

// 5.设置MapTask的输出数据类型
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);

// 6.设置输出输出类
FileInputFormat.setInputPaths(job, new Path("c:/tools/bigdata/mr/wc/input/"));
FileOutputFormat.setOutputPath(job, new Path("c:/tools/bigdata/mr/wc/output/"));

// 7.提交任务
job.waitForCompletion(true);
}
}

MapReduce之Eclipse本地运行_mapreduce_05

MapReduce之Eclipse本地运行_mapreduce_06


举报

相关推荐

0 条评论