示例程序WordCount的执行

简介: 示例程序WordCount的执行

一、 任务描述

面对大数据,大数据的存储和处理,就好比一个人的左右手,显得尤为重要。Hadoop比较适合解决大数据问题,很大程度上依赖其大数据存储系统,即HDFS和大数据处理系统,即MapReduce。而对于MapReduce,单词计数是最简单也是最能体现 MapReduce 思想的程序之一,可以称为 MapReduce 版 “Hello World“,该程序的完整代码可以在 Hadoop 安装包的“src/examples“目录下找到。 单词计数主要完成功能是:统计一系列文本文件中每个单词出现的次数,如下图所示。

42effc212e62431fbee9d199f062d102.png


本实验以ubuntu环境为基础,练习wordcount统计单词的例子,练习完对信息进行整理并填写工作任务报告。

二、 任务目标

了解mapreduce的原理流程。体验大数据统计的方便。

三、 任务环境

本次环境是:Ubuntu16.04 + jdk1.8.0_151

四、 任务分析

在 Hadoop 中,每个 MapReduce 任务都被初始化为一个 Job,每个 Job 又可以分为两种 阶段:map 阶段和 reduce 阶段。这两个阶段分别用两个函数表示,即 map 函数和 reduce 函 数。map 函数接收一个形式的输入,然后同样产生一个形式的中间输 出,Hadoop 函数接收一个如形式的输入,然后对这个 value 集合进行处 理,每个 reduce 产生 0 或 1 个输出,reduce 的输出也是形式的。

♥ 知识链接

html表单

  HTML的表单用于收集用户的输入,表单中包含很多表单元素,指的是不同类型的 input 元素、复选框、单选按钮、提交按钮等等。< input>元素是最重要的表单元素。

五、 任务实施

步骤1、单词准备

启动hadoop服务,如图1所示

74efb74b075141068669dc566c786202.png

图1 启动hadoop服务

  右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令打开终端。我们需要找到这个例子的位置:执行命令cd /simple/hadoop/share/hadoop/mapreduce】进入该目录下。【ls】查看该目录下发现有很多jar包,这些都是小程序的jar包。如图2所示


435c7da0359c4e5da219b96363e0ecf0.png

图2 查看文件位置

使用命令【echo "hello world bye world">count.txt】建立count.txt文件并且输入信息,然后同样往count1.txt中输入信息。如图3所示

739b3b4a654a40ee935345a9eb6098b9.png

图3 建立文件

在HDFS上创建目录,命令如下【hadoop fs -mkdir /wordcount】。如图4所示

a20195cbf9894e9e8a529642f71e0e19.png

图4 创建目录

使用命令【rm -rf employee.txt】删除与本实验无关文件,将本地文件count.txt和count1.txt上传到HDFS上的wordcount目录:命令为【hadoop fs -put *.txt /wordcount】,其中’.txt‘表示所有以”txt”结尾的文件。如图5所示。

0ca4906a621c4e94ba78e44125d6bb9e.png

图5 上传文件

我们要运行的例子在hadoop的安装目录下,名称叫做hadoop-mapreduce-examples-2.7.3.jar。

  下面,运行WordCount例子,执行如下命令:hadoop jar hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /wordcount /output】。使用【hadoop jar】命令将/wordcount目录中的单词统计到output目录下的文件中。 其中,“wordcount“是程序主类名,output是输出文件夹,它由程序自动创建。如图6所示


11b2d4d9c1c4463d85e957e2948e16b5.png

图6 运行WordCount例子

♥ 知识链接

MapReduce过程分析

Hadoop 命令会启动一个 JVM 来运行这个 MapReduce 程序,并自动获得 Hadoop 的配置, 同时把类的路径(及其依赖关系)加入到 Hadoop 的库中。以上就是 Hadoop Job 的运行记录, 从这里可以看到,这个 Job 被赋予了一个 ID 号:job_201202292213_0002,而且得知输入文 件有两个(Total input paths to process : 2),同时还可以了解 map 的输入输出记录(record 数 及字节数),以及 reduce 输入输出记录。

六、 任务测试

查看output目录下生成的文件。其中“part-r-00000“文件为统计结果的文件。如图7所示

ef06d0d1f17d43d3905881a7b3bc7356.png

图7 查看生成文件

  使用命令【hadoop fs -cat /output/part-r-00000】查看文件,结果如图8所示

226415a9a9a14c52a2fcda5251185668.png

图8 查看统计结果

4fb756b8892340b1bf2d69ef3c95eb78.png

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
6月前
|
分布式计算 Java Scala
181 Spark IDEA中编写WordCount程序
181 Spark IDEA中编写WordCount程序
35 0
|
5月前
|
Java 数据格式
手写WordCount示例编写
手写WordCount示例编写
16 0
|
5月前
|
分布式计算 Java Hadoop
【本地模式】第一个Mapreduce程序-wordcount
【本地模式】第一个Mapreduce程序-wordcount
|
5月前
|
分布式计算 Hadoop Java
【集群模式】执行MapReduce程序-wordcount
【集群模式】执行MapReduce程序-wordcount
|
6月前
|
分布式计算 Hadoop Java
Hadoop学习笔记:运行wordcount对文件字符串进行统计案例
Hadoop学习笔记:运行wordcount对文件字符串进行统计案例
34 0
|
12月前
|
SQL 分布式计算 Java
Spark入门以及wordcount案例代码
Spark入门以及wordcount案例代码
|
分布式计算 Hadoop Java
动手写的第一个MapReduce程序--wordcount
动手写的第一个MapReduce程序--wordcount
|
分布式计算 Hadoop Java
hadoop第一个运行实例wordcount
hadoop第一个运行实例wordcount
118 0
|
资源调度 分布式计算 Java
MapReduce入门例子之WordCount单词计数
MapReduce入门例子之WordCount单词计数
133 0
MapReduce入门例子之WordCount单词计数
|
分布式计算 Hadoop
在Hadoop系统中运行WordCount案例失败解决方法
在Hadoop系统中运行WordCount案例失败解决方法
528 0