流计算、flink、storm、spark streaming、spark

SPARK
Apache软件基金会下的顶级开源项目之一,Apache软件基金会最重要的三大分布式计算系统开源项目之一(Hadoop、Spark、Storm)
Flink
Apache 软件基金会顶级项目,是Apache软件基金会的5个最大的大数据项目之一

Storm
Apache顶级项目

2 以下说法不正确的是:

A、 Flink可以支持“精确一次”的容错性,但是无法做到毫秒级的实时处理。

B、 Spark Streaming可以实现高吞吐和容错性,但不具备低延迟和实时处理能力。

C、 Flink具有独立的内存管理机制

D、 Storm是无状态的计算框架,每一条消息来了之后,彼此都是独立的,和前后都没有关系。

正确答案: A 我的答案:A

  • Flink 能够提供毫秒级别的延迟,同时保证了数据处理的低延迟、高吞吐和结果的正确性
  • 有状态计算(更加难):flink,基于多个事件输出结果
  • 无状态计算:观察每个独立的事件,根据最后一个时间输出结果。storm是无状态的计算框架,每一条消息来了之后,彼此都是独立的,和前后都没有关系
  • 具有独立的内存管理。java提供的垃圾回收机制实现内存管理,但是,不适合大数据。Flink通过序列化反序列化,将数据对象转为二进制在内存中存储,降低存储空间,有效对内存空间进行利用,降低垃圾回收机制带来的性能下降或任务异常风险。

3下列哪个说法是错误的?(1.5分)0.0 分
A、 在Spark上可以统一部署Spark SQL,Spark Streaming、MLlib,GraphX等组件,提供便捷的一体化编程模型
B、 从编程的灵活性来讲,Storm是比较理想的选择,它使用Apache Thrift,可以用任何编程语言来编写拓扑结构(Topology)
C、 Spark Streaming无法实现毫秒级的流计算
D、 Spark Streaming可以实现毫秒级的流计算
正确答案: D 我的答案:C

  • 大数据处理包括三种类型:批量数据,基于历史数据的交互式查询、基于实时数据流的数据处理。如果同时满足以上三个场景,就需要同时部署三个不同的软件,带来了一些问题:不同场景无法无缝共享输入输出数据,需要格式的转化;不同软件的团队,较高的成本;统一的资源协调和分配问题
  • 为了满足上面三个场景同时实现,提供了spark,一个软件栈满足不同应用场景,所以spark提供了生态系统,其生态系统组件为:spark core(批量数据处理,RDD抽象单行分布式数据集Resilient Distributed Dataset 以基本统一一致的方式应对不同场景);Spark SQL(统一处理关系表和RDD,轻松查询,进行更复杂的数据分析);Spark Streming(流计算) ;MLlib(机器学习);GraphX(图计算)
  • 生态系统中组件的方法几乎通用,数据共享,无缝集成
  • Topology是Storm中最高岑那个词抽象概念,是流转换图。Topology的定义:Thift结构体,Thift是基于二进制的高性能通信中间件,支持各种编程语言定义,用各种编程语言来创建,提交Topology

5下列关于Storm设计思想,描述有误的是?(1.5分)1.5 分
A、 Storm将Streams的状态转换过程抽象为Spout
B、 Storm认为每个Stream都有一个源头,并把这个源头抽象为Spout
C、 Storm将Spouts和Bolts组成的网络抽象成Topology
D、 Topology里面的每个处理组件(Spout或Bolt)都包含处理逻辑, 而组件之间的连接则表示数据流动的方向
正确答案: A
我的答案:A

6下列关于PageRank 算法在MapReduce 中的实现的描述,错误的是?(1.5分)1.5 分
A、 PageRank 分配就是多次迭代计算页面的PageRank值
B、 收敛阶段的任务就是由一个非并行组件决定是否达到收敛
C 、解析网页的任务就是分析一个页面的链接数,但是不赋初值
D、 一般判断是否收敛的条件是所有网页的PageRank值不再变化,或者运行30次以后我们就认为已经收敛了
正确答案: C 我的答案:C

  • MapReduce实现PageRank的计算过程包括:解析网页,PageRank分配,收敛阶段
  • 解析网页:分析一个页面的链接数并赋予初值
  • PageRank分配:多次迭代计算pagerank值

7下列关于Storm的描述,有误的是?(1.5分)1.5 分
A、 Bolt可以执行过滤、函数操作、Join、操作数据库等任何操作
B、 Storm认为每个Stream都有一个源头,并把这个源头抽象为Spout
C、 Storm将流数据Stream描述成一个有限的Tuple序列
D、 Storm保证每个消息都能完整处理
正确答案: C 我的答案:C

  • bolts:tuple的出来逻辑,可执行过滤、聚合、查询等操作
  • tuple:元祖,元素的有序列表,每个tuple是一个值列表,列表的每个值都有一个名称,并且改制可以是基本类型,字符类型,字节数组等,也可以是其他可序列化的类型。
  • Strems:流数据是一个无限的Tuple序列,tuple序列会以分布式并行的创建和处理
  • storm具有可靠的消息处理:保证每个消息都能完整处理

8下列哪项不属于在Vetex类中的值类型参数?(1.5分)1.5 分
A、
顶点的出度
B、

C、
消息
D、
顶点
正确答案: A 我的答案:A

  • Vertex类:定义了三个值类型参数:顶点、边、消息

10在每个超步中,Worker调用顶点上的Compute()函数,下列哪个参数是不需要传递?(1.5分)1.5 分
A、 一个入射边的迭代器
B、 一个接收到的消息的迭代器
C、 该顶点的当前值
D、 一个出射边的迭代器
正确答案: A 我的答案:A

  • compute()调用时会传递三个参数:顶点的当前值,一个接受到消息的迭代器,一个出射边的迭代器。
  • 没有对入射边进行访问,因为入射边是其起始顶点的出射边,会和他的的起始顶点一起被访问
  • worker管辖的状态信息保存在内存中,分区中的顶点的状态信息包括:顶点的当前值、出射边、消息队列、标志位
  • 为了更好地性能,标志位和输入消息队列分开保存

11在一个Worker中,它所管辖的分区的状态信息是保存在内存中的,下列哪一项不属于分区的状态信息?(3.0分)3.0 分
A、 标志位
B、 一个接收到的消息的迭代器
C、 顶点的当前值
D、 消息队列
正确答案: B 我的答案:B

12下列哪一项不属于Storm的特点?(1.5分)1.5 分
A、 容错性:Storm需要人工进行故障节点的重启、任务的重新分配
B、 可扩展性:Storm的并行特性使其可以运行在分布式集群中
C、 免费、开源:Storm是一款开源框架,可以免费使用
D、 支持各种编程语言:Storm支持使用各种编程语言来定义任务
正确答案: A 我的答案:A

storm的特点:

  • 整合性:方便的与队列系统和数据库系统进行整合
  • 简易的api
  • 可拓展性:并行特性使其可以在分布式集群中
  • 容错性:自动故障节点重启,节点故障是任务重新分配
  • 可靠的消息处理:保证消息都能完整处理
  • 支持各种编程语言
  • 快速部署
  • 免费开源

13在Pregel计算模型中,图中的每个顶点会对应一个计算单元,下列哪一项不属于计算单元的成员变量?(1.5分)1.5 分
A、 消息(Message):传递的消息
B、 顶点值(Vertex value):顶点对应的PR值
C、 出射边(Out edge):只需要表示一条边,可以不取值
D、 入射边(Iut edge):只需要表示一条边,可以不取值
正确答案: D 我的答案:D

14下列关于流计算的说法,哪项是错误的?(1.5分)1.5 分
A、 对于一个流计算系统来说,它应该支持TB级甚至是PB级的数据规模
B、 流计算秉承一个基本理念,即 数据的价值随着时间的流逝而降低
C、 实时获取来自不同数据源的海量数据,经过实时分析处理,获得有价值的信息
D、 流计算只需要保证较低的延迟时间,即只达到秒级别即可处理一切问题
正确答案: D 我的答案:D

流计算系统的需求:

  • 高性能:每秒处理几十万条数据
  • 海量式:TB甚至是PB级数据规模
  • 实时性:较低的时延,秒级甚至毫秒级
  • 分布式:支持大数据基本框架,能够平滑扩展
  • 易用性
  • 可靠性

15下列哪个不属于PageRank算法在Pregel和MapReduce中实现方式的区别?(1.5分)1.5 分
A、 Pregel将PageRank处理对象看成是连通图,而MapReduce则将其看成是键值对
B、 MapReduce将计算批量化处理,按任务进行循环迭代控制
C、 图算法如果用Pregel实现,需要一系列的Pregel的调用
D、 Pregel将计算细化到顶点,同时在顶点内控制循环迭代次数
正确答案: C 我的答案:C

pregelmapreduce
将pagerank看成连通图将pagerank看作键值对
计算细化到顶点,在顶点内控制循环次数批量处理,按任务进行循环控制
简化一系列mapreduce调用,传递图的状态,产生大量不必要的序列化和反序列化开销

17下列关于Storm和Hadoop架构组件功能对应关系,哪个是错误的?(1.5分)1.5 分
A、
Hadoop Job 对应 Storm Topology
B、
Hadoop Reduce对应 Storm Bolt
C、
Hadoop TaskTracker对应 Storm Supervisor
D、
Hadoop JobTracker对应 Storm Spout
正确答案: D 我的答案:D

hadoopstorm
job:一个mapreduce作业最终会完成计算并结束运行topology:一个topology将持续处理消息,直到人为终止
jobtrackernimbus:(master节点运行nimbus后台程序)分发代码、为worker分配任务,监测故障
tasktrackersupervisor:(每个worker节点运行supervisor后台程序)监听分配给他所在机器的工作,根据nimbus分配的任务来决定启动或是停止worker进程
map/reducespout/bolts

18下列关于图结构数据的描述,错误的是?(1.5分)0.0 分
A、 图数据结构很好地表达了数据之间的关联性
B、许多非图结构的大数据,通常会被转换为关系模型后进行分析
C、 许多大数据都是以大规模图或网络的形式呈现
D、 关联性计算是大数据计算的核心
正确答案: B 我的答案:D

许多非图结构的大数据,通常会被转换为图模型后进行分析

19下列哪个关于Stream Groupings的描述,有误的是?(1.5分)1.5 分
A、
NonGrouping:不分组,和ShuffleGrouping类似,当前Task的执行会和它的被订阅者在同一个线程中执行
B、
GlobalGrouping:全局分组,所有的Tuple都发送到同一个Task中
C、
DirectGrouping:直接分组,直接指定由某个Task来执行Tuple的处理
D、
FieldsGrouping:广播发送,每一个Task都会收到所有的Tuple
正确答案: D 我的答案:D

1流数据具有以下哪些特征?(2.0分)0.0 分
A、 注重数据的整体价值,不过分关注个别数据
B、 数据来源众多,格式复杂
C、 系统可以控制将要处理的新到达的数据元素的顺序
D、 数据快速持续到达,潜在大小也许是无穷无尽的
正确答案: ABD 我的答案:ABCD

数据密集型 应用–流数据(大量、快速、时变的流形式持续到达)
数据记录:流数据的最小组成单元

  • 快速持续到达,潜在数据量可能无穷
  • 来源多,格式复杂
  • 量大,不关注存储,数据经过处理后,要么丢弃,要么归档存储
  • 注重数据的整体价值,不过分关注个体的
  • 顺序颠倒,或者不完整,无法控制将要处理的新来的数据元素的顺序

3下列关于批量计算和实时计算的说法,正确的有?(2.0分)2.0 分
A、
静态数据不适合采用批量计算,因为它不适合用传统的关系模型建模
B、
批量计算:充裕时间处理静态数据,如Hadoop
C、
流数据必须采用实时计算
D、
流数据的响应时间一般为秒级,甚至需要毫秒级
正确答案: BCD 我的答案:BCD

4下列关于流计算与Hadoop的说法,正确的有?(2.0分)2.0 分
A、
Hadoop擅长批处理,不适合流计算
B、
Hadoop设计的初衷是面向大规模数据的批量处理
C、
MapReduce不适合用于处理持续到达的动态数据
D、
MapReduce是专门面向静态数据的批量处理的
正确答案: ABCD 我的答案:ABCD

基于mapreduce的批量处理转为小批量处理,将输入数据切成小的片段,每隔一个周期就启动一次mapreduce作业,会引发以下十多年体

  • 小片段,增加附加开销,片段之间的依赖关系也要处理
  • reduce阶段结果不能直接输出,而是保存在内存,增加了mapreduce复杂度,难以维护和扩展
  • 降低了可伸缩性,因为必须使用mapreduce接口

5下列说法正确的是?(2.0分)2.0 分
A、
通常只对那些满足交换律和结合律的操作才可以去开启Combiner功能
B、
在默认情况下,Pregel计算框架并不会开启Combiner功能
C、
顶点之间的通讯是借助于消息传递机制来实现的
D、
在Pregel执行计算过程时,在每个超步中都会并行调用每个顶点上定义的Compute()函数
正确答案: ABCD 我的答案:ABCD

7Storm具有以下哪些特点?(2.0分)2.0 分
A、
可扩展性:Storm的并行特性使其可以运行在分布式集群中
B、
简易的API:Storm的API在使用上即简单又方便
C、
容错性:Storm可自动进行故障节点的重启、任务的重新分配
D、
整合性:Storm可方便地与队列系统和数据库系统进行整合
正确答案: ABCD 我的答案:ABCD

8下列关于Spark Streaming与Storm的描述,哪些是正确的的?(2.0分)2.0 分
A、
Storm无法用于实时计算
B、
Spark Streaming采用的小批量处理的方式使得它可以同时兼容批量和实时数据处理的逻辑和算法
C、
Storm可以实现毫秒级响应件
D、
Spark Streaming无法实现毫秒级的流计算
正确答案: BCD 我的答案:BCD

  • 待解决

9下列关于Storm框架,描述正确的有?(2.0分)2.0 分
A、
task:实际的数据处理由task完成
B、
在Topology的生命周期中,每个组件的task数目是不会发生变化的,而executor的数目却不一定
C、
executor:executor是产生于worker进程内部的线程
D、
worker:每个worker进程都属于一个特定的Topology
正确答案: ABCD 我的答案:ABCD

10
典型的事件驱动型应用包括:

(2.0分)2.0 分
A、 业务流程监控

B、 社交网络

C、 反欺诈

D、 异常检测

正确答案: ABCD 我的答案:ABCD

12针对大型图的计算,目前通用的图计算软件主要哪些?(2.0分)2.0 分
A、
基于遍历算法的、实时的图数据库,如Neo4j、OrientDB、DEX和 Infinite Graph
B、
以图顶点为中心的、基于消息传递批处理的并行引擎,如Neo4j、OrientDB、DEX和 Infinite Graph
C、
以图顶点为中心的、基于消息传递批处理的并行引擎,如GoldenOrb、Giraph、Pregel和Hama
D、
基于遍历算法的、实时的图数据库,如GoldenOrb、Giraph、Pregel和Hama
正确答案: AC 我的答案:AC

  • 基于遍历算法的、实时的图数据库,如Neo4j、OrientDB、DEX和 Infinite Graph
  • 以图顶点为中心的、基于消息传递批处理的并行引擎,如GoldenOrb、Giraph、Pregel和Hama

14
大数据Lambda架构主要包含两层:

(2.0分)2.0 分
A、 消息传输层

B、 实时处理层

C、 批处理层

D、 流处理层

正确答案: BC 我的答案:BC

lambda为了解决不同数据类型的问题,进行了分层,分来处理数据,
批处理层:mapreduce、spark
实时处理层:storm、spark、streaming
缺点是:复杂性留给了用户,太多框架,运维成本高,过于复杂

15在Pregel计算框架中,图的保存格式多种多样,具体包括哪些?(2.0分)0.0 分
A、
语音文件
B、
关系数据库
C、
文本文件
D、
键值数据库
正确答案: BCD 我的答案:ABCD

图的保存格式:

  • 文本文件
  • 关系数据库
  • 键值数据库
    pregel中国,生成图和执行图这两个过程是分离的额,不会限制输入文件格式。
    对于输出,也很灵活,可以以多种方式输出

17
Flink常见的应用场景包括:(2.0分)1.0 分
A、
电子商务中的持续ETL
B、
事件驱动型应用
C、
数据分析应用
D、
数据流水线应用
正确答案: ABCD 我的答案:BCD

常见的场景为:事件驱动型应用,数据分析应用,数据流水线应用
数据流水线应用包括了,电子商务中的实时查询索引构建、电子商务中的持续etl等

18一次BSP(Bulk Synchronous Parallel Computing Model,又称“大同步”模型)计算过程包括一系列全局超步(所谓的超步就是计算中的一次迭代),每个超步主要包括哪些组件?(2.0分)2.0 分
A、
局部计算:每个参与的 处理器都有自身的计算任务
B、
通讯:处理器群相互交换数据
C、
基于现有的分布式计算平台进行图计算
D、
栅栏同步:当一个处理器遇到“路障”(或栅栏),会等到其他所有处理器完成它们的计算步骤
正确答案: ABD 我的答案:ABD

19很多传统的图计算算法都存在以下哪些典型问题?(2.0分)0.0 分
A、
针对单个顶点的处理工作过少
B、
计算过程中伴随着并行度的改变
C、
常常表现出比较差的内存访问局部性
D、
计算过程简易
正确答案: ABC 我的答案:ABCD

传统的图计算问题

  • 较差的内存访问局部性
  • 针对单个顶点的处理工作少
  • 计算过程中伴随着并行度的改变

针对大型图的计算问题

  • 为特定的图应用定制相应的分布式实现。==》通用性不好
  • 基于现有的分布式计算平台==》mapreduce:但是性能。易用性不好
  • 单机的图算法库==》解决问题的规模方面具有局限性
  • 已有的并行图计算系统==》无法满足大规模分布式系统的非常重要的特性

通过的图计算软件

  • 基于遍历算法、实时的图数据库:Neo4j/OrientDB/DEX/InfiniteGraph
  • 以图顶点为中心的、基于消息传递批处理的并行引擎:Hama、Golden Orb、Griaph、pregel

22针对大型图(比如社交网络和网络图)的计算问题,哪些说法是正确的?(2.0分)2.0 分
A、
基于现有的分布式计算平台进行图计算:在性能和易用性方面往往无法达到最优
B、
为特定的图应用定制相应的分布式实现:通用性不好
C、
使用已有的并行图计算系统,但是,对大规模分布式系统非常重要的一些方面(比如容错),无法提供较好的支持
D、
使用单机的图算法库,但是,在可以解决的问题的规模方面具有很大的局限性
正确答案: ABCD 我的答案:ABCD

23
Flink的核心组件栈分为三层:
(2.0分)2.0 分
A、
API & Libraries层
B、
Runtime核心层
C、
物理部署层
D、
Master层
正确答案: ABC 我的答案:ABC

物理部署层:

  • 可以采用local模式运行,启动单个jvm
  • standalone集群模式
  • yarn集群模式
  • 谷歌云服务gce
  • 亚马逊云ec2

runtime核心层:
负责向上层不同接口提供基础服务
flink分布式计算框架的核心实现层
两套核心的api:

  • 流处理(DataStream API)
  • 批处理(DataSet API)

API&Libaries层:
不同应用类型的组件库:

  • CEP(基于流处理的复杂事件处理库)
  • SQL&Table(既可以基于流处理,也可以基于批处理)
  • FlinkML(基于批处理的机器学习库)
  • Gelly(基于批处理的 图计算库)

24下列对于Pregel的执行过程,哪些是正确的?(2.0分)2.0 分
A、
Master会把用户输入划分成多个部分,通常是基于文件边界进行划分
B、
选择集群中的多台机器执行图计算任务,每台机器上运行用户程序的一个副本
C、
Master向每个Worker发送指令,Worker收到指令后,开始运行一个超步
D、
Master把一个图分成多个分区,并把分区分配到多个Worker
正确答案: ABCD 我的答案:ABCD

pregel执行过程

  • 选择及集群中多台机器执行图计算任务,每台机器运行用户程序的一个副本,其中一台作为master,其余为worker
  • master把图分为多个分区,并把分区分配到多个worker,一个worker会分配到一个或多个分区,每个worker知道所有其他worker所分配的分区情况
  • master把用户输入划分为多个部分,通常基于文件边界进行划分
  • master向每个worker发送指令,worker收到后,开始运行一个抄不
  • 计算结束后,master给所有的worker发送指令,通知每个worker对自己的结果进行持久化存储

25
Flink体系架构主要的两个组件为:
(2.0分)2.0 分
A、
DataManager
B、
ResourceManager
C、
TaskManager
D、
JobManager
正确答案: CD 我的答案:CD

2
Flink实现了Google Dataflow流计算模型,是一种兼具高吞吐、低延迟和高性能的实时流计算框架,它不支持批处理运算。
(2.0分)2.0 分
正确答案: × 我的答案: ×

也支持批处理

3
采用传统架构的系统,一般都拥有非常复杂的异常问题处理方法,当出现异常问题时,可以保证系统还能很好地运行。
(2.0分)2.0 分
正确答案: × 我的答案: ×

传统数据处理框架:中心化的数据库系统存储事务性数据,当应用程序需要比较新的数据时,都会访问这个中心数据库
但是,数据的不断增多,逐渐不堪重负,
而且出现问题,整个系统也会受影响
传统的架构的系统,出现了异常,不能很好的运行

4
在FLink编程模型中,最低级的抽象接口是SQL。
(2.0分)2.0 分
正确答案: × 我的答案: ×

最低级的抽象接口:状态化的数据流接口
最高级接口:sql

10
Flink的Gelly库为基于批量数据集的大规模、高性能的图分析,提供了算法和构建模块支持。
(2.0分)2.0 分
正确答案: √ 我的答案: √

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值