MapReduce之Eclipse本地运行

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


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

本地运行模式

本地运行模式的特点

   mapreduce程序是被提交给LocalJobRunner在本地以单进程的形式运行。

   而处理的数据及输出结果可以在本地文件系统,也可以在hdfs上。

   本地模式非常便于进行业务逻辑的debug,只要在eclipse中打断点即可

环境准备

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

image.png

具体操作参考此文:https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88960266

   配置环境变量信息

image.png

image.png

测试

image.png

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);
  }
}

image.png

image.png


相关文章
|
4月前
|
开发工具 Android开发 git
【dbeaver】Eclipse 运行 dbeaver 源码
【dbeaver】Eclipse 运行 dbeaver 源码
422 0
|
25天前
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
34 0
|
1月前
|
分布式计算 Hadoop Java
Hadoop_MapReduce中的WordCount运行详解
MapReduce的WordCount程序在分布式系统中计算大数据集中单词出现的频率时,提供了一个可以复用和可伸缩的解决方案。它体现了MapReduce编程模型的强大之处:简单、可靠且将任务自动分布到一个集群中去执行。它首先运行一系列的Map任务来处理原始数据,然后通过Shuffle和Sort机制来组织结果,最后通过运行Reduce任务来完成最终计算。因此,即便数据量非常大,通过该模型也可以高效地进行处理。
48 1
WXM
|
2月前
|
Java 应用服务中间件 网络安全
Eclipse运行SSM/SSH项目教程
Eclipse运行SSM/SSH项目教程
WXM
72 0
|
3月前
|
分布式计算 Java Hadoop
简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
43 0
|
分布式计算 资源调度 Ubuntu
MapReduce程序运行部署的几种方式 - 结尾附源码
MapReduce程序运行部署的几种方式 - 结尾附源码
182 0
|
4月前
|
Java 关系型数据库 BI
基于Java Swing 开发的网吧管理系统【eclipse和idea两个版本运行源码】
基于Java Swing 开发的网吧管理系统【eclipse和idea两个版本运行源码】
110 0
|
4月前
|
存储 分布式计算 算法
MapReduce计数器,Tash的运行机制,shuffle过程,压缩算法
MapReduce计数器,Tash的运行机制,shuffle过程,压缩算法
51 0
|
4月前
|
分布式计算 Java Hadoop
IDEA 打包MapReduce程序到集群运行的两种方式以及XShell和Xftp过期的解决
IDEA 打包MapReduce程序到集群运行的两种方式以及XShell和Xftp过期的解决
|
10月前
|
Oracle Java 关系型数据库
JDK配置,eclipse运行 web通过apache-tomcat,mysql配置
JDK配置,eclipse运行 web通过apache-tomcat,mysql配置