目录

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类

MapReduce环境准备相关推荐

  1. windows 环境下Eclipse开发MapReduce环境设置

    1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0 ...

  2. eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任务

    转自:http://my.oschina.net/mkh/blog/340112 1 eclipse中hadoop环境部署概览 eclipse中部署hadoop包括两大部分:hdfs环境部署和mapr ...

  3. Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo

    随笔 - 70  文章 - 0  评论 - 88 Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo 近期为了分析国内航空旅游业常见安全漏洞,想到 ...

  4. hadoop环境搭建之伪分布集群环境搭建(单节点)

    首先,尼玛哥是一名研究生,可以说很多学习的知识都是来源于同门师兄弟,本着将自己学习到的东西以博客的形式分享到网络上,不仅仅可以让自己回顾,也可以帮助需要学习的小伙伴们,供大家一同学习. 首先,hado ...

  5. 第五章-分布式并行编程框架MapReduce

    第五章-分布式并行编程框架MapReduce 文章目录 第五章-分布式并行编程框架MapReduce MapReduce概述 分布式并行编程 MapReduce模型和函数 MapReduce体系结构 ...

  6. Windows下使用IDEA+Maven搭建本地Hadoop环境

    IDEA结合Maven搭建本地MapReduce环境 文章目录 IDEA结合Maven搭建本地MapReduce环境 前言 环境 配置Maven 新建项目 初始化 添加apache源 添加Hadoop ...

  7. Hadoop MapReduce作业的基本构成要素

    Table of Contents MapReduce模型 我的第一个MapReduce应用程序的架构 Hadoop的核心MapReduce MapReduce任务的构成要素 MapReduceInt ...

  8. 大数据技术原理与应用 概念、存储、处理、分析和应用(林子雨)——第七章 MapReduce

    第七章 MapReduce 7.1 概述 7.1.1 分布式并行编程 在过去的一段时间里,CPU 的性能一直遵循着"摩尔定律",大约每隔 18 个月,性能就会翻一番.这意味着不需要 ...

  9. mapreduce 编程模型

    MapReduce是在总结大量应用的共同特点的基础上抽象出来的分布式计算框架,它适用的应用场景往往具有一个共同的特点:任务可被分解成相互独立的子问题.基于该特点,MapReduce编程模型给出了其分布 ...

  10. Hadoop技术(二)资源管理器YARN和分布式计算框架MapReduce

    资源管理器YARN和分布式计算框架MapReduce 第一章 Hadoop MapReduce 是什么 一 MapReduce 介绍 1. 基本介绍 2. MR数据流程方向 3. MR 原语/ 核心思 ...

最新文章

  1. Java截取最后一个/后面的所有字符
  2. Linux 新增一个用户命令 adduser
  3. linux如何卸载netstat,linux – Netstat -s显示(并且正在增长)“从接收队列中删除的数据包”和“数据包在接收队列中崩溃”...
  4. 三层架构介绍和MVC设计模型介绍
  5. XML--使用XML来将字符串分隔成行数据
  6. java文本框双击可编辑_java swing 文本域双击变为可编辑
  7. 带你利用一句话完成转场动画
  8. 5类6类7类网线对比_孩子们长高的黄金时期是从3月到5月,这阶段多吃6类食物长得快...
  9. matlab 判断鼠标按下_Simulink(其他校验模块)+Matlabgui(鼠标响应事件)+Stateflow汽车运动逻辑状态(二)...
  10. win7电脑更改不了分辨率的解决方法
  11. 『Python Kivy』Kivy模板语言KV说明
  12. [BZOJ 2957]楼房重建(THU2013集训)(线段树维护单调栈)
  13. vb 循环放音乐_为何洒水车一直无限循环播放《兰花草》这首歌呢?
  14. 如何安装uclient_UClient软件下载-UClient客户端下载 v2.0.0.1580官方版--pc6下载站
  15. Linux TCP/UDP调试助手下载安装(转载备忘)
  16. 使用js实现网页录音并上传服务器
  17. 2022年防爆电气考试题及答案
  18. 进程间通信方式有哪些?各自有哪些优缺点?
  19. MFC-CEdit派生一个只允许输入16进制数据的新类
  20. Java基础 快速学习(一)

热门文章

  1. 个人介绍网页代码 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计
  2. node2vec python_Node2vec和networkx
  3. 软考高项-案例分析背诵
  4. matlab离散信号幅频相频特性,信号幅频相频特性画法(频率响应法).pdf
  5. 豪越智慧后勤解决方案(教育/高校)
  6. 什么是erp管理系统
  7. idea远程调试修改代码_利用IDEA远程调试代码
  8. IPM是如何控制三相电机的
  9. tomcat乱码问题解决
  10. cad怎样弄出放线的坐标_不知道如何定位放线?今天教大家一个快速准确放线方法(含实例)...