MapReduce 单词统计案例编程
MapReduce
单词统计案例编程
一、在Linux环境安装Eclipse软件
1、 解压tar包
下载安装包eclipse-jee-kepler-SR1-linux-gtk-x86_64.tar.gz到/opt/software目录下。
解压到/opt/tools目录下:
[hadoop@bigdata-senior01 tools]$ tar -zxf
/opt/sofeware/eclipse-jee-kepler-SR1-linux-gtk-x86_64.tar.gz -C /opt/tools/
2、 创建存放源代码的目录
[hadoop@bigdata-senior01 eclipse]$ sudo
mkdir -p /opt/mysource/workspace
修改mysource的所有者为hadoop用户
[hadoop@bigdata-senior01 opt]$ sudo chown
-R hadoop:hadoop /opt/mysource/
3、 启动Eclipse
在XWindow环境中,进入/opt/tools/eclipse目录,执行eclipse打开eclipse界面。
[hadoop@bigdata-senior01 eclipse]$
/opt/tools/eclipse/eclipse
设置Workspace目录为:/opt/mysource/workspace。

二、Hadoop Maven配置
1、 安装Apache Maven
(1) 解压Maven
[hadoop@bigdata-senior01
sofeware]$ tar -zxf apache-maven-3.0.5-bin.tar.gz -C /opt/modules/
(2) 配置/etc/profile文件
export MAVEN_HOME="/opt/modules/apache-maven-3.0.5"
export
PATH=$MAVEN_HOME/bin:$PATH
(3) 生效配置文件
[root@bigdata-senior01
sofeware]# source /etc/profile
(4) 确认Maven配置成功
[root@bigdata-senior01
sofeware]# mvn -version
Apache Maven
3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 21:51:28+0800)
Maven home:
/opt/modules/apache-maven-3.0.5
Java version:
1.7.0_67, vendor: Oracle Corporation
Java home:
/opt/modules/jdk1.7.0_67/jre
Default locale:
en_US, platform encoding: UTF-8
OS name:
"linux", version: "2.6.32-504.el6.x86_64", arch:
"amd64", family: "unix"
2、 设置Eclipse中设置Maven路径
(1) Preferences对话框左侧选择Maven下的Installations,右侧点击Add,添加一个Maven位置。
(2) 选择自己的maven目录:/opt/modules/apache-maven-3.0.5

3、 查看home目录下是否有.m2目录
在Preferences左侧的Maven下的User Setting中,查看右侧是否提示.m2目录不存在,如果不存在,要手动创建。

4、 拷贝maven的settings.xml
[hadoop@bigdata-senior01 ~]$ cp
/opt/modules/apache-maven-3.0.5/conf/settings.xml ~/.m2/
三、创建WordCount程序项目
1、 创建一个Maven项目
(1) File菜单中,新建Maven Project。


2、 添加Source Folder用来存放配置文件


将来core-site.xml、hdfs-site.xml、yarn-site.xml等配置文件存放在这个目录下。
3、 为src/main/resource指定输出路径


4、 编辑pom.xml文件

修改pom.xml后保存后,maven会自动去下载依赖包
四、编写MapReduce方法
1、 添加一个类WordCountMapReduce

WordCountMapReduce类继承org.apache.hadoop.con类并实现org.apache.hadoop.util接口。
|
package com.chybinmy.hadoop.mapreduce; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.util.Tool; public class WordCountMapReduce extends Configuration } |
2、 Map类
|
public |
3、 Reduce类
public static class WordCountReduce extends Reducer<Text, IntWritable, Text, IntWritable> {
|
4、 run方法
public int run(String[] args) throws Exception {
|
5、 main方法
public static void main(String[] args) throws Exception {
|
五、打包JAR,在YARN上运行
1、 将打包好的jar包放在
2、 运行jar
[hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/yarn jar
/opt/mysource/mapreduce.jar com.chybinmy.hadoop.mapreduce.WordCountMapReduce /wordcountdemo/input/wordcount.input
/wordcountdemo/output3

3、 查看结果
|
[hadoop@bigdata-senior01 hadoop 3 hbase 1 hive mapreduce spark 2 sqoop 1 storm 1 |
六、以WordCount为例理解MapReduce并行运行过程
1、 流程图

2、 执行过程描述
(1) 每个分片数据分配一个map任务,任务内容是用户写的map函数,map函数是尽量运行在数据分片的机器上,这样保证了“数据本地优化”。
(2) map任务的结果是各自排好序的,各个map结果进行再次排序合并后,作为reduce任务的输入。
(3) reduce任务执行reduce函数来处理数据,得到最终结果后,存入HDFS。
(4) 会有多个reduce任务,每个reduce任务的输入都来自于许多map任务,map任务和reduce任务之间是需要传输数据的,占用网络资源,影响效率,为了减少数据传输,可以在map()函数后,添加一个combiner函数来对结果做预处理。
附件列表
MapReduce 单词统计案例编程的更多相关文章
- 2.Storm集群部署及单词统计案例
1.集群部署的基本流程 2.集群部署的基础环境准备 3.Storm集群部署 4.Storm集群的进程及日志熟悉 5.Storm集群的常用操作命令 6.Storm源码下载及目录熟悉 7.Storm 单词 ...
- 关于MapReduce单词统计的例子:
要统计的文件的文件名为hello hello中的内容如下 hello you hello me 通过MapReduce程序统计出文件中的各个单词出现了几次.(两个单词之间通过tab键进行的分割) im ...
- hadoop笔记之MapReduce的应用案例(WordCount单词计数)
MapReduce的应用案例(WordCount单词计数) MapReduce的应用案例(WordCount单词计数) 1. WordCount单词计数 作用: 计算文件中出现每个单词的频数 输入结果 ...
- 大数据学习——mapreduce程序单词统计
项目结构 pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&q ...
- 【Cloud Computing】Hadoop环境安装、基本命令及MapReduce字数统计程序
[Cloud Computing]Hadoop环境安装.基本命令及MapReduce字数统计程序 1.虚拟机准备 1.1 模板机器配置 1.1.1 主机配置 IP地址:在学校校园网Wifi下连接下 V ...
- 2、 Spark Streaming方式从socket中获取数据进行简单单词统计
Spark 1.5.2 Spark Streaming 学习笔记和编程练习 Overview 概述 Spark Streaming is an extension of the core Spark ...
- Spark入门(三)--Spark经典的单词统计
spark经典之单词统计 准备数据 既然要统计单词我们就需要一个包含一定数量的文本,我们这里选择了英文原著<GoneWithTheWind>(<飘>)的文本来做一个数据统计,看 ...
- Java实现单词统计
原文链接: https://www.toutiao.com/i6764296608705151496/ 单词统计的是统计一个文件中单词出现的次数,比如下面的数据源 其中,最终出现的次数结果应该是下面的 ...
- ytu 2002:C语言实验——单词统计(水题)
C语言实验——单词统计 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 61 Solved: 34[Submit][Status][Web Board] ...
随机推荐
- DDD实践问题之 - 关于论坛的帖子回复统计信息的更新的思考
之前,在用ENode开发forum案例时,遇到了关于如何实现论坛帖子的回复的统计信息如何更新的问题.后来找到了自己认为比较合理的解决方案,分享给大家.也希望能和大家交流,擦出更多的火花. 论坛核心领域 ...
- Web Audio介绍
Web Audio还是一个比较新的JavaScript API,它和HTML5中的<audio>是不同的,简单来说,<audio>标签是为了能在网页中嵌入音频文件,和播放器一样 ...
- HTML和CSS经典布局5
如下图: 需求: 1. 如图 2. 可以从body标签开始. 3. 页面内容高度设置高点,把窗口的滚动条显示出来,但是busy indicator不滚动. <!DOCTYPE html> ...
- [ASP.NET MVC 小牛之路]14 - Unobtrusive Ajax
Ajax (Asynchronous JavaScript and XML 的缩写),如我们所见,这个概念的重点已经不再是XML部分,而是 Asynchronous 部分,它是在后台从服务器请求数据的 ...
- 【VC++技术杂谈002】打印技术之获取及设置系统默认打印机
本文主要介绍如何获取以及设置系统的默认打印机. 1.获取系统中的所有打印机 获取系统中的所有打印机可以使用EnumPrinters()函数,该函数可以枚举全部的本地.网络打印机信息.其函数原型为: B ...
- C语言 · 出现次数最多的数
问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20.然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来.如果有两 ...
- zookeeper分布式锁原理
一.分布式锁介绍分布式锁主要用于在分布式环境中保护跨进程.跨主机.跨网络的共享资源实现互斥访问,以达到保证数据的一致性. 二.架构介绍在介绍使用Zookeeper实现分布式锁之前,首先看当前的系统架构 ...
- Spring学习记录(五)---bean的作用域scope
作用域:singleton:单例,整个应用中只创建一个实例(默认) prototype:原型,每次注入时都新建一个实例 session:会话,每个会话创建一个实例 request:请求,每个请求创建一 ...
- angular中的compile和link函数
angular中的compile和link函数 前言 这篇文章,我们将通过一个实例来了解 Angular 的 directives (指令)是如何处理的.Angular 是如何在 HTML 中找到这些 ...
- KnockoutJS 3.X API 第六章 组件(3) 组件绑定
组件绑定将指定的组件注入到元素中,并且可选地将参数传递给它. 本节目录 一个例子 API 组件生命周期 备注1:仅限模板组件 备注2:使用没有容器元素的组件 备注3:将标记传递给组件 处置和内存管理 ...