MapReduce环境准备

目录

MapReduce编程规范

WordCount案例实操

环境准备


MapReduce编程规范

用户编写的程序分成三个部分:Mapper、Reducer、Driver

1、Mapper阶段

1)用户自定义的Mapper要继承自己的父类。

2)Mapper的输入数据是KV对的形式(KV的类型可自定义)

3)Mapper中的业务逻辑写在map()方法中。

4)Mapper的输出数据是KV对的形式(KV的类型可自定义)

5)map()方法(MapTask进程)对每一个<K,V>调用一次。

2、Reducer阶段

1)用户自定义的Reducer要继承自己的父类。

2)Reducer的输入数据类型对应Mapper的输出数据类型,也是KV。

3)Reducer的业务逻辑写在reduce()方法中。

4)ReduceTask进程对每一组相同k的<k,v>组调用一次reduce()方法。

3、Driver阶段

相当于YARN集群的客户端,用于提交我们整个程序到YARN集群,提交的是封装了MapReduce程序相关运行参数的job对象。

WordCount案例实操

本地测试

1、需求

统计出给出的文本文件中统计出每一个单词出现的总次数。

1)输入数据

新建一个文本文件命名为:HYF.txt

2)期望输出数据

HYF 2;LJY1;LQQ 2;

CZF 1;  MGQ 1;CDH 2; WJJ 1;

2、需求分析

按照MapReduce编程规范,分别编写Mapper、Reducer、Driver。

环境准备

1)常见waven工程,命名为MapReduceDemo

文件》新建》项目

 

 更改maven下的配置

文件》设置》搜索栏》输入maven

在pom.xml文件中添加如下依赖 

<dependencies>

    <dependency>

        <groupId>org.apache.hadoop</groupId>

        <artifactId>hadoop-client</artifactId>

        <version>3.1.3</version>

    </dependency>

    <dependency>

        <groupId>junit</groupId>

        <artifactId>junit</artifactId>

        <version>4.12</version>

    </dependency>

    <dependency>

        <groupId>org.slf4j</groupId>

        <artifactId>slf4j-log4j12</artifactId>

        <version>1.7.30</version>

    </dependency>

</dependencies>

在项目的src/main/resources目录下,新建一个文件,命名为“log4j.properties” 

 操作:在resources下单击右键》新建》文件

 在log4j.properties文件中填入

log4j.rootLogger=INFO, stdout  

log4j.appender.stdout=org.apache.log4j.ConsoleAppender  

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n  

log4j.appender.logfile=org.apache.log4j.FileAppender  

log4j.appender.logfile.File=target/spring.log  

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  

log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

 在项目src/main/java下创建一个 软件包,命名为:com.atguigu.mapreduce.wordcou

操作:java路径下单击右键》新建》软件包

 在包com.atguigu.mapreduce.wordcount下新建三个类

分别命名为:

WordCountMapper;WordCountReducer;WordCountDriver

操作:在包下单击右键》新建》java类

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值