大数据技术作业1

一、大数据技术概述

1.请阐述大数据处理的基本流程?

大数据的基本处理流程,主要包括数据采集、存储管理、处理分析、结果呈现等环节。因此,从数据分析全流程来看,大数据技术主要包括数据采集与预处理、数据存储和管理、数据处理与分析、数据可视化、数据安全与隐私保护等几个层面的内容。

2.请阐述大数据的计算模式以及代表产品。

批处理计算。批处理计算主要解决针对大规模数据的批量处理。MapReduce、Spark

流计算。流计算主要是实时处理来自不同数据源的、连续到达的流数据,经过实时分析处理,给出有价值的分析结果。Storm、S4、DStream

图计算。针对大规模图结构数据的处理。GraphX、Pergel

查询分析计算。面向大规模数据的存储结果和查询分析。Hive、Dremel。

3.请列举Hadoop生态系统的各个组件及其功能。

Hadoop生态系统主要包括HDFS、MapReduce、YARN、Zookeeper、HBase、Hive、Pig、Mahout、Sqoop、Flume。Ambari等功能组件。

HDFS是一个分布式文件系统,是Hadoop两大核心组成部分之一,提供了在廉价服务器集群汇总进行大规模分布式文件存储的能力。

MapReduce是一种分布式并行编程模型,用于大规模数据集的并行计算。其设计理念是计算向数据靠拢。

YARN是负责集群资源调度管理的组件。YARN的目标是实现“一个集群多个框架”,在一个集群上部署一个统一的资源调度管理框架YARN,在YARN之上可以部署其他各种计算框架。

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来存储非结构化和半结构化的松散数据。

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

Flume是一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输系统。

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

4.分布式文件系统HDFS的名称节点和数据结点的功能分别是什么?

名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。集群中的数据结点一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在名称节点的统一调度下进行数据块的创建、删除和复制等操作。

5.试阐述MapReducec的基本设计思想。

在MapReduce中,一个存储在分布式文件系统中的大规模数据,会被切分成许多独立的小数据块,这些小数据块可以被多个Map任务并行处理。MapReduce框架会为每个Map任务输入一个数据子集,Map任务生成的结果会继续作为Reduce任务的输入,最终由Reduce任务输出最后结果,并写入分布式文件系统。

6.YARN的主要功能是什么?使用YARN可以带来哪些好处?

YARN主要的功能是进行集群资源调度管理。在一个集群上部署一个统一的资源调度管理框架YARN,在YARN之上可以部署其他各种计算框架,由YARN为这些计算框架提供统一的资源调度管理服务,并且能够根据各种计算框架的负载需求,调整各自占用的资源,实现集群资源共享和资源弹性收缩。

实现一个集群上不用应用负载混搭,有效提高了集群的利用率;避免了数据的跨集群移动;大大降低了企业运维成本。

7.试阐述Hadoop生态系统中HBase与其他部分的关系。

Hbase利用MapReduce来处理hBase中的海量数据,实现高性能计算;利用Zookeeper作为协同服务,实现稳定服务和失败回复;使用HDFS作为高可靠的底层存储,利用廉价进群提供海量数据存储能力。

8.数据仓库Hive的主要功能是什么?

Hive可以用于存储在Hadoop文件中的数据集进行数据整理、特殊查询和分析处理。

9.Hadoop主要有哪些缺点?相比之下,Spark具有哪些优点?

总体而言,Hadoop中的MapReduce计算框架主要存在以下缺点:

表达能力有限。计算都必须转化为Map和Reduce两个操作,但这并不适合所有的情况,难以描述复杂的数据处理过程;

磁盘I/O开销大。每次执行时都需要从硬盘读取数据,并且在计算完成后需要将中间过程写入到磁盘中,I/O开销大;

延迟高。一次计算可能需要分解成一系列按顺序执行的MapReduce任务,任务之间的衔接由于涉及到I/O开销,会产生较高延迟。而且,在前一个任务执行完成之前,其他任务无法开始,因此难以胜任复杂、多阶段的计算任务。

Spark对比MapReduce的优点:

Spark的计算模式也属于MapReduce,但不局限与Map和Reduce操作,还提供了多种数据集操作类型,编程模型比MapReduce更灵活;

Spark提供了内存计算,中间结果直接放到内存中,带来了更高的迭代运算效率;

Spark提供DAG的任务调度执行机制,要优于MapReduce的迭代执行机制。

10.如何实现Spark与Hadoop的统一部署?

使用YARN来进行Spark和Hadoop的统一部署,Spark仅是取代了Hadoop中的计算框架MapReduce,

二、Scala语言基础

1.简述Scala语言与Java语言的联系与区别。

Scala是一门类Java的多范式语言,它整合了面向对象编程和函数式编程的最佳特性。

Scala运行在Java的虚拟机JVM之上,兼容现有的Java程序。

Scala是一门纯粹的面向对象语言。

Scala还是一门函数式语言。

2.Scala有哪些基本数据类型和操作符?

Int、Short、Byte

3.在Scala里怎样定义一个变量?与Hava的变量定义有什么区别?

三、Spark的设计与运行原理

1.Spark是基于内存计算的大数据计算平台,请简述Spark的主要特点。

运行速度快:Spark使用了先进的有向无环图DAG执行引擎。

容易使用:Spark支持多种语言,同时具有简洁的API。

通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、图计算等。

运行模式多样:Spark可运行于独立的集群中,也可以运行在Hadoop中,也可以运行在云环境中。

2.Spark的出现是为了解决Hadoop MapReduce的不足,请列举Hadoop MapReduce的几个主要缺陷,并说明Spark具有哪些优点。

表达能力有限。计算都必须转化为Map和Reduce两个操作,但这并不适合所有的情况,难以描述复杂的数据处理过程;

磁盘I/O开销大。每次执行时都需要从硬盘读取数据,并且在计算完成后需要将中间过程写入到磁盘中,I/O开销大;

延迟高。一次计算可能需要分解成一系列按顺序执行的MapReduce任务,任务之间的衔接由于涉及到I/O开销,会产生较高延迟。而且,在前一个任务执行完成之前,其他任务无法开始,因此难以胜任复杂、多阶段的计算任务。

有点:

利用多线程来执行具体的任务,减少了任务的启动开销

BlockManager存储模块,利用内存和硬盘共同作为存储设备,提高了读写I/O性能。

3.美国加州大学伯克利分销提出的数据分析软件栈BDAS认为目前的大数据处理可以分为哪3个类型?

复杂的批量数据处理

基于历史数据的交互式查询

基于实时数据流的数据处理

4.Spark已打造出结构一体化、功能多样化的大数据生态系统,请简述Spark的生态环境。

主要包括Spark Core ,Spark SQL,Spark Streaming,MLlib和GraphX等组件。

Spark Core 提供了Spark中最基础和核心的功能,如内存计算、任务调度、部署模式、故障恢复、存储管理等,主要面向批数据处理。

Spark SQL:用于结构化数据处理组件,允许开发人员直接处理RDD,同时可以查询Hive、HBase等外部数据源。能够统一的管理关系表和RDD。

Spark Streaming:Spark Streaming是一种流计算框架,可以支持高吐吞量、可容错处理的实时流数据处理。

MLlib:MLlib提供了常用机器学习算法的实现。

GraphX:GraphX是用于图计算的API。

5.请阐述Saprk on YARN的概念。

Spark运行在YARN之上,与HADOOP进行统一部署,对应的资源管理和调度依赖于YARN,分布式存储则依赖于HDFS。

6.请阐述如下Spark的几个主要概念:RDD、DAG、阶段、分区、窄依赖、宽依赖。

RDD:弹性分布式数据集,提供了一种高度受限的共享内存模型。

DAG:有向无环图,反映RDD之间的依赖关系,

阶段:是作业的基本调度单位。

分区:一个数据集片段。

窄依赖:不包含Shuffle操作,表现为一个父RDD的一个分区对应一个子RDD的分区,或者多个父RDD的一个分区对应一个子RDD的分区。

宽依赖:包含Shuffle操作,表现为一个父RDD的一个分区对应一个子RDD的多个分区。

7.Spark对RDD的操作主要分为行动(Action)和转化(Transformation)两种类型,两种操作类型的区别是什么?

Action用于执行计算并指定输出的形式,Transformation用于指定RDD之间的相互依赖关系。由于惰性机制,前者真正发生了计算,会开始从头到尾的计算,而后者只会记录转换的轨迹。


大数据技术作业1
https://fulequn.github.io/2020/11/Article202011184/
作者
Fulequn
发布于
2020年11月18日
许可协议