实验目的
利用搭建好的大数据平台 Hadoop,对 HDFS 中的文本文件进行处理,采用 Hadoop Steaming 方式,使用 Python 语言实现英文单词的统计功能,并输出单词统计结果。
实验内容
将附件"COPYING_LGPL.txt"上传 Hadoop 集群的 HDFS 中,采用 Hadoop Steaming方式,使用 Python语言实现字词统计功能,输出字词统计结果,即实现文本单词的词频统计功能。要求将实验原理,过程,代码分析,结果分析记录在实验报告中。
实验步骤
实验原理简述 MapReduce 的 Data Flow 如下图所示,原始数据经过 mapper 处理,再进行 partition 和 sort,到达 reducer,输出最后结果。Hadoop 的MapReduce处理框架,一般的编程模型如下图所示, 将一个业务拆分为 Mapper 和 Reducer 两个阶段。使用 Python 语言背后的“技巧”是我们将使用 Hadoop Streaming API 来帮助我们通过 STDIN(标准输入)和 STDOUT(标准输出)在 Map 和 Reduce 代码之间传递数据。我们将简单地使用 Python 的 sys.stdin 来读取输入数据并将我们自己的输出打印到 sys.stdout。这就是我们需要做的全部,因为 Hadoop Streaming 会帮助我们处理其他所有事情!
使用 Python 来调用 Hadoop Streaming API,其基本流程如下图。用 Python 写Map