前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每周学点大数据 | No.66 “Hello World”程序—— WordCount(下)

每周学点大数据 | No.66 “Hello World”程序—— WordCount(下)

作者头像
灯塔大数据
发布2018-04-03 16:59:29
5870
发布2018-04-03 16:59:29
举报
文章被收录于专栏:灯塔大数据灯塔大数据

NO.66

“Hello World”程序—— WordCount

接下来把输入文件从磁盘放入 HDFS 中。首先我们来看看 HDFS 的常用命令。

可以使用 $ bin/hadoop dfs 命令来查看 HDFS 的命令列表。

大部分内容和 Linux Shell 的命令是非常相似的。

我们可以用如下的格式来使用命令 :

注意不要遗漏命令前面的小横线。

比如,我们要查看 HDFS 中的文件列表,就可以使用如下命令 :

一般来说,我们要处理的数据量都很大,而且很多时候这些数据往往不止存在一个数据文件中。这里我们用三个文件来举例,多个文件和三个文件的方法是相同的。假设三个文件的名字分别是 file01、file02 和 file03。

首先为它们创建一个文件夹,这个文件夹存储在 HDFS 中。

然后将输入文件放进文件夹中。

当文件非常多的时候,我们也可以选择使用通配符“*”。比如 :

它用来表示操作对象是所有以 file 开头的文件。使用通配符固然是非常方便的,但是也容易由于使用不当产生一些错误,所以设计文件名时一定要谨慎。

这些都完成之后,我们可以执行前面的 jar 包了。

现在我们简单分析一下用 Hadoop 运行 jar 包的命令格式。

这里的输入路径是我们之前在 HDFS 中创建的 input,output 是我们给输出的日志文件和结果建立的文件夹,它会和 input 一起存放在 HDFS 的根目录下。

小可盯着屏幕上变化的文字,说 :从屏幕上可以看到很多运行的信息,还有 Map 和Reduce 的运行情况百分比。

Mr. 王 :是的,当操作的数据比较大时,往往 Map 和 Reduce 运行的时间会非常长,我们可以根据屏幕上输出的这些日志来观察具体的运行情况。关于各种系统资源的使用情况和程序的执行情况,都可以从输出日志中找到相关的统计数据。

小可 :可是,现在运行结束之后,结果在哪里呢?

Mr. 王 :当发现光标已经重新出现在终端中时,说明 Hadoop 的运行已经结束,我们可以去看看程序的执行结果了。从刚才执行的命令来看,我们将程序的执行结果放在 HDFS 中一个叫 output 的文件夹中了。我们可以先看看这个文件夹是不是存在。

如果找到了 output,则说明程序已经成功地将结果找了出来。

我们可以将这个文件夹从 HDFS 重新放回硬盘中。可以使用 HDFS 的 -get 命令,这个命令可以将 HDFS 中的文件或文件夹取出来,放到硬盘中。后面的两个参数分别为要操作的对象和要放置的指定路径。

我们再使用 ls 命令,看看是否有这个文件夹就可以了。

我们发现了 output 这个文件夹,进入这个文夹。

里面会有几个日志文件,其中的 part-00000 就是保存结果的文件,打开它。

就会显示了每个单词出现的数量。比如 :

Mr. 王 :这仍然是一个比较经典版本的WordCount,在 Hadoop 不断更新和迭代之后,也引入了一些新机制和新 API。下面是一个基于新版本 API 的 WordCount 程序。

程序的整体设计思路没有太大的变化,在程序的逻辑上也没有很明显的变化,只是在 API上发生了一点变化。

在新版本的 API 中,我们注意到在 Map 类和 Reduce 类的实现上,不再需要继承MapReduceBase 类并实现 Mapper 和 Reducer 接口,而是直接继承 Mapper 类和 Reducer 类即可。这说明在新版本的 API 中,Mapper 和 Reducer 已经不再是接口规范,而是一个可供继承的类了。

另外,context 对象也具有新的特点,在很大程度上它代替了 Reporter 的工作。在主方法中,我们也注意到使用 Job 类来控制 Job 的运行,在以往的 API 中,使用 JobClient 类。

小可 :关于 WordCount 的内容我基本上懂了。

Mr. 王 :别看 WordCount 这个例子比较简单,但真可谓是麻雀虽小,五脏俱全。我们可以用相似的框架结构,以并行计算的方法去完成很多大数据处理的任务。接下来我们来看几个实际的例子。

下期精彩预告

经过学习,我们研究了 WordCount涉及到的一些具体问题。在下一期中,我们将进一步了解Hadoop 实践案例——记录去重的相关内容。更多精彩内容,敬请关注灯塔大数据,每周五不见不散呦!

文章作者:王宏志

文章编辑:田芳

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 5G融智未来 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档