本章首先介绍了Hadoop的发展历史、基本概念、组件原理以及Hadoop生态系统各个框架,接着介绍了Hadoop的安装配置以及开发环境IDE配置,在此基础上又介绍了Hadoop常用的集群命令、Hadoop MapReduce编程开发原理,并针对MapReduce编程开发详细介绍了MapReduce原理、单词计数源码分析。最后介绍了一个MapReduce编程多维度分析电影网站用户影评的应用实例。相信通过本章的学习,读者可以对Hadoop、Hadoop MapReduce原理有更深入的了解,对开发Hadoop MapReduce程序也可以说初窥门径了。
(1)一般MapReduce程序的过程顺序是( )。
A. 输入、输入分片、map阶段、shuffle阶段、reduce阶段、输出
B. 输入、输入分片、shuffle阶段、map阶段、reduce阶段、输出
C. 输入、reduce阶段、输入分片、shuffle阶段、map阶段、输出
D. 输入、输入分片、reduce阶段、shuffle阶段、map阶段、输出
(2)以下描述错误的是( )。
A. Hive是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。
B. Pig能够把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
C. Sqoop用于Hadoop(Hive)与传统数据库之间的数据传递。
D. Flume是Cloudera提供的一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。
(3)HDFS Java API列出某个路径下的所有文件及文件夹的命令是( )。
A. create(Path)
B. listStatus(Path)
C. mkdirs(Path)
D. oprn(Path)
(4)下面对MapReduce过程中描述错误的是( )。
A. 文件在HDFS上分块存储,在所有节点上存储实际的块。
B. 在Map阶段,针对每个文件块,建立一个map任务,map任务直接运行在DataNode上,即移动计算,而非数据。
C. Map输出的键值对经过shuffle/sort阶段后,相同的key会输送到同一个Reducer中。
D. 每个Reducer处理从map输送过来的键值对,然后输出新的键值对,一般输出到HDFS上。
(5)Hadoop官方示例源码词频统计(WordCount)从结构上可以分为3个部分,下列不属于程序核心模块的是( )。
A. Driver模块
B. Mapper模块
C. Reducer模块
D. Main模块