当前位置:文档之家› 林子雨大数据技术原理与应用第二章课后题答案

林子雨大数据技术原理与应用第二章课后题答案

大数据第二章课后题答案
黎狸
1.试述Hadoop和谷歌的MapReduce、GFS等技术之间的关系。

Hadoop是Apache软件基金会旗下的一-个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。

①Hadoop 的核心是分布式文件系统( Hadoop Ditributed File
System,HDFS )和MapReduce。

②HDFS是对谷歌文件系统( Google File System, GFS )的开源实现,是面
向普通硬件环境的分布式文件系统,具有较高的读写速度、很好的容错
性和可伸缩性,支持大规模数据的分布式存储,其冗余数据存储的方式
很好地保证了数据的安全性。

③MapReduce 是针对谷歌MapReduce的开源实现,允许用户在不了
解分布式系统底层细节的情况下开发并行应用程序,采用MapReduce 来整合分布式文件系统上的数据,可保证分析和处理数据的高效性。

2.试述Hadoop具有哪些特性。

Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性。

①高可靠性。

采用冗余数据存储方式,即使一个副本发生故障,其他副本
也可以保证正常对外提供服务。

②高效性。

作为并行分布式计算平台,Hadoop采用分布式存储和分布式
处理两大核心技术,能够高效地处理PB级数据。

③高可扩展性。

Hadoop的设计目标是可以高效稳定地运行在廉价的计算
机集群上,可以扩展到数以千计的计算机节点。

④高容错性。

采用冗余数据存储方式,自动保存数据的多个副本,并且能
够自动将失败的任务进行重新分配。

⑤成本低。

Hadoop采用廉价的计算机集群,成本比较低,普通用户也很
容易用自己的PC搭建Hadoop运行环境。

⑥运行在Linux平台上。

Hadoop是基于Java语言开发的,可以较好地
运行在Linux平台上。

⑦支持多种编程语言。

Hadoop 上的应用程序也可以使用其他语言编写,
如C++。

3.试述Hadoop在各个领域的应用情况。

互联网领域是Hadoop应用的主要阵地。

①雅虎将Hadoop主要用于支持广告系统与网页搜索。

②Facebook主要将Hadoop平台用于日志处理、推荐系统和数据仓库等
方面。

③淘宝Hadoop集群服务于阿里巴巴集团各部门,数据来源于各部门产品
的线上数据库( Oracle、MySQL)备份、系统日志以及爬虫数据,每天在
Hadoop集群运行各种MapReduce任务,如数据魔方、量子统计、推
荐系统、排行榜等。

④百度选择Hadoop主要用于日志的存储和统计、网页数据的分析和挖掘、
商业分析、在线数据反馈、网页聚类等。

4.试述Hadoop的项目结构以及每个部分的具体功能。

Hadoop项目结构
各部分具体功能:
①Common。

Common为Hadoop其他子项目提供支持的常用工具,
主要包括文件系统、RPC(Remote Procedure Call)和串行化库。

②Avro。

Avro Avro是Hadoop的一一个子项目,也是Apache中的一
个独立项目。

Avro是一个用于数据序列化的系统,提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持久性数据的文件集、远程调用( Remote Procedure Call, RPC )的功能和简单的动态语言集成功能。

Avro 可以将数据结构或对象转化成便于存储和传输的格式,节约数据存储空间和网络传输带宽, Hadoop的其他子项目(如HBase和Hive )的客户端与服务端之间的数据传输都采用了Avro。

③HDFS。

HDFS是针对GFS的开源实现。

具有处理强大数据、流式处理、
可以运行在廉价的商用服务器上等优点。

④HBase。

HBase是针对谷歌的BigTable的开源实现。

一般采用HDFS作
为其底层数据存储,基于列的存储,具有强大的非结构化数据存储能力。

具有良好的横向扩展能力。

⑤MapReduce。

MapReduce是一种编程模型,用于大规模数据集(大
于1TB)的并行运算。

允许用户在不了解分布式系统底层细节的情况下开发并行应用程序,并将其运行于廉价计算机集群上,完成海量数据的处理。

⑥Zookeeper。

Zookeeper是针对谷歌Chubby的-一个开源实现,是高
效和可靠的协同工作系统,提供分布式锁之类的基本服务( 如统一命名
服务、状态同步服务、集群管理、分布式应用配置项的管理等),用于构
建分布式应用,减轻分布式应用程序所承担的协调任务。

⑦Hive。

Hive是一个基于Hadoop的数据仓库工具,可以用于对Hadoop
文件中的数据集进行数据整理、特殊查询和分析存储,十分适合数据仓
库的统计分析。

⑧Pig。

Pig是一种数据流语言和运行环境,适合于使用Hadoop和
MapReduce平台来查询大型半结构化数据集。

Pig大大简化了
Hadoop常见的工作任务,它在MapReduce的基础上创建了更简单
的过程语言抽象,为Hadoop应用程序提供了一种更加接近结构化查询
语言(SQL)的接口。

⑨Sqoop。

Sqoop可以改进数据的互操作性,主要用来在Hadoop 和关
系数据库之间交换数据。

通过Sqoop,可以方便地将数据从MySQL、
Oracle 、PostgreSQL 等关系数据库中导人Hadoop (可以导人HDFS、HBase或Hive),或者将数据从Hadoop导出到关系数据库,使得传统关
系数据库和Hadoop之间的数据迁移变得非常方便。

⑩Chukwa。

Chukwa是一个开源的、用于监控大型分布式系统的数据收集系统,可以将各种类型的数据收集成适合Hadoop处理的文件,并保
存在HDFS中供Hadoop进行各种MapReduce操作。

5.路径JAVA_ HOME是在哪一个配置文件中进行设置的?
在安装Hadoop的文件夹下的“conf”目录下配置。

6.所有节点的HDFS路径是通过来设置的,请问它是在哪个
配置文件中设置的?
在安装目录下的HDFS core-site.xml 配置文件中配置。

是文件系统的名字。

通常是NameNode的hostname 与port,需要在每一个需要访问集群的机器上指定,包括集群中的节点7.试列举单机模式和伪分布模式的异同点。

相同点:运行机器数相同。

单机模式与伪分布式都是在一台单机上运行。

不同点:
①运行模式不同:单机模式是Hadoop的默认模式,即在一台单机上运行,
没有分布式文件系统,直接读写本地操作系统的文件系统。

伪分布模式
但用不同的Java进程模仿分布式运行中的各类结点。

②启动进程不同:单机模式下,Hadoop不会启动NameNode、
DataNode、JobTracker、TaskTracker等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。

伪分布式模式下,Hadoop
启动NameNode、DataNode、JobTracker、TaskTracker这些守护
进程都在同一台机器上运行,是相互独立的Java进程。

③配置文件处理方式不同:单机模式下,不对配置文件进行修改。

伪分布
式模式下,修改3个配置文件:core-site.xml(Hadoop集群的特性,作用于全部进程及客户端)、hdfs-site.xml(配置HDFS集群的工作属性)、mapred-site.xml(配置MapReduce集群的属性)。

④节点交互不同:单机模式因为不需要与其他节点交互,单机模式就不使
用HDFS,也不加载任何Hadoop的守护进程。

该模式主要用于开发调
试MapReduce程序的应用逻辑。

伪分布模式在单机模式之上增加了代
码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。

8.Hadoop伪分布式运行启动后所具有的进程都有哪些?
Hadoop伪分布式运行启动后所具有的进程有:NameNode、DataNode、JobTracker、TaskTracker。

9.如果具备集群实验条件,请尝试按照Hadoop官方文档搭建全分布式的
Hadoop集群环境。

略。

相关主题