《大数据技术》题型
四、简答题(每题5分,共25分)
1、请阐述大数据、云计算和物联网三者之间的关系。 答案:
近几年来,云计算受到学术界和工业界的热捧,随后,大数据横空出世,更是炙手可热。那么,大数据和云计算之间是什么关系呢?
(1)从整体上看,大数据与云计算是相辅相成的
大数据着眼于“数据”,关注实际业务,提供数据采集分析挖掘,看重的是信息积淀,即数据存储能力。云计算着眼于“计算”,关注 IT 解决方案,提供 IT 基础架构,看重的是计算能力,即数据处理能力。没有大数据的信息积淀,则云计算的计算能力再强大,也难以找到用武之地;没有云计算的处理能力,则大数据的信息积淀再丰富,也终究只是镜花水月。
(2)从技术上看,大数据根植于云计算
云计算关键技术中的海量数据存储技术、海量数据管理技术、MapReduce编程模型,都是大数据技术的基础。
(3)物联网借助于云计算存储数据,借助于大数据技术分析数据。
五、分析题
下图是Hadoop生态系统图,请分别阐述Hadoop生态系统的各个组成部分(Avro、Zookeeper、HDFS、HBase、MapReduce、Pig、Hive、Sqoop)的主要功能。(10分)
答案: ? ? ? ? ?
Avro是用于数据序列化的系统。它提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持久性数据的文件集、远程调用RPC的功能和简单的动态语言集成功能。
HDFS是一种分布式文件系统,运行于大型商用机集群,HDFS为HBase提供了高可靠性的底层存储支持。
HBase位于结构化存储层,是一个分布式的列存储数据库。
Mapreduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。
Zookeeper是一个分布式的、高可用性的协调服务,提供分布式锁之类的基本服务,用于构建分布式
应用,为HBase提供了稳定服务和失败恢复机制。 ? ? ?
Hive最早是由Facebook设计的,是一个建立在Hadoop基础之上的数据仓库,它提供了一些对存储在Hadoop文件中的数据集进行数据整理、特殊查询和分析的工具。
Pig是一种数据流语言和运行环境,用以检索非常大的数据集,大大简化了Hadoop常见的工作任务。 Sqoop为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变得非常方便。
六、编程题(10分) 用Spark程序实现中位数算法
现在有一份数字文件,其中的数据内容如下:
1 20 8 2 5 11 29 10 7 4 45 6 23 17 19
每一行都有若干个数字,数字与数字之间的分隔符为一个空格。现在需要求出这些数字的中位数。 解:
1.将这份数字文件取名为median.txt,上传到服务器的/home目录下。 2.单机启动Spark。 3.输入以下代码:
scala> var data = sc.textFile(\
scala> var parseData=data.flatMap{line=>line.split(\
.map {num => num.toInt}
scala> var medianPos=(parseData.count()+1)/2
scala> val median=parseData.top(medianPos.toInt).last
scala> println(median)
10
得出这些数字的中位数是10