关于MapReduce6 – 重构WordCount

这里是一个更完整的WordCount实例。在这个实例中使用了很多前面提到的MapReduce框架的特性。

这个实例需要HDFS支持运行,尤其是关于DistributedCache的一些特性。因此,这个实例只能运行于伪分布式或者完全分布式安装的Hadoop上。

看下源代码:

看看输入文本文件:

查看文件的内容:

运行应用程序:

输出执行结果:

这次我们的输入内容和第一次有些不同,请注意输出结果是怎样受到影响的。

现在我们通过DistributedCache插入一个模式文件,在这个文件里,列出了一些可以被忽略统计的单词模式。

再次运行,这次我们需要在命令中添加更多的选项:

输出结果和我们期望的一样:

再运行一次,这次我们关闭大小写敏感的特性:

就这样,我们看看输出结果:

程序要点

通过使用一些Map/Reduce框架提供的功能,WordCount的第二个版本在原始版本基础上有了如下的改进:

  • 展示了应用程序如何在Mapper (和Reducer)中通过setup方法修改配置参数;
  • 展示了怎样使用DistributedCache分发作业需要的只读数据。在这个程序中,允许用户设定单词模式,并在统计中跳过符合模式的单词;
  • 展示了使用GenericOptionsParser去处理常见hadoop命令行选项的功能;
  • 展示了应用程序如何使用Counters,如何通过传递给map(和reduce) 方法的Reporter实例来设置应用程序的状态信息。

#######

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.