大数据技术原理及应用林子雨版课后习题答案解析

***

专业资料整理分享

流计算处理流程示意图

20 试列举几个 Storm 框架的应用领域

Storm 框架可以方便地与数据库系统进行整合,从而开发出强大的实时计算系统 Storm 可用于许多领域中,如实时分析、在线机器学习、持续计算、远程 取加载转换等

RPC、数据提

21Storm 的主要术语包括 Streams ,Spouts 、Bolts 、Topology 和 Stream Groupings, 请 分别简要描述这几个术语

63. Streams :Storm 将流数据 Stream 描述成一个无限的 Tuple 序列,这些 Tuple 序列

会以分布式的方式并行地创建和处理

64. Storm 框架可以方便地与数据库系统进行整合,从而开发出强大的实时计算系统

65. Bolt :Storm 将 Streams 的状态转换过程抽象为 Bolt 。Bolt 即可以处理 Tuple ,也

可以将处理后的 Tuple 作为新的 Streams 发送给其他 Bolt

66. Topology :Storm 将 Spouts 和 Bolts 组成的网络抽象成 Topology ,它可以被提交到

Storm 集群执行。 Topology 可视为流转换图,图中节点是一个

Spout 或 Bolt ,边则

表示 Bolt 订阅了哪个 Stream 。当 Spout 或者 Bolt 发送元组时,它会把元组发送到 每个订阅了该 Stream 的 Bolt 上进行处理

67. Topology :Storm 将 Spouts 和 Bolts 组成的网络抽象成 Topology ,它可以被提交到

Storm 集群执行。 Topology 可视为流转换图,图中节点是一个

Spout 或 Bolt ,边则

表示 Bolt 订阅了哪个 Stream 。当 Spout 或者 Bolt 发送元组时,它会把元组发送到 每个订阅了该 Stream 的 Bolt 上进行处理

22 一个 Topolog 由哪些组件组成?

完美 WORD格式编辑

***

***

专业资料整理分享

?Topology 里面的每个处理组件( Spout 或 Bolt )都包含处理逻辑, 间的连接则表示数据流动的方向

而组件之

27Storm 集群中的 Master 节点和 Work节点各自运行什么后台进程?这些进程又分别负 责什么工作?

Storm 集群采用“ Master—Worker”的节点方式: Master 节点运行名为“ Nimbus”的后台程序(类似 责在集群范围内分发代码、为

Hadoop中的“JobTracker ”),负

Worker 分配任务和监测故障

Worker 节点运行名为“ Supervisor ”的后台程序,负责监听分配给它所在机器的工作, 即根据 Nimbus 分配的任务来决定启动或停止 行若干个 Worker 进程

Worker 进程,一个 Worker 节点上同时运

28 试述 Zookeeper 在 Storm 框架中的作用 Storm 使用 Zookeeper 来作为分布式协调组件,负责

Nimbus 和多个 Supervisor 之间的

所有协调工作。借助于 Zookeeper ,若 Nimbus 进程或 Supervisor 进程意外终止,重启 时也能读取、恢复之前的状态并继续工作,使得

Storm 极其稳定

31 试述 Storm 框架的工作流程 Storm 的工作流程如下图所示:

完美 WORD格式编辑

***

***

专业资料整理分享

68. 提交Topology

2. 将任务存储在 Zookeeper 中

Nimbus

Client Zookeeper

7. 获取分配的任务,并启动 Worker Supervisor

8. Worker 进程执行具体的任务

Worker

Task Task

?所有 Topology 任务的提交必须在 Storm 客户端节点上进行, 提交后,由 Nimbus 节点分配给其他 Supervisor 节点进行处理

?Nimbus 节点首先将提交的 Topology 进行分片, 分成一个个 Task,分配给相应 的 Supervisor ,并将 Task 和 Supervisor 相关的信息提交到 Zookeeper 集群上

?Supervisor 会去 Zookeeper 集群上认领自己的 Task,通知自己的 Worker 进程 进行 Task 的处理

?说明:在提交了一个 Topology 之后,Storm 就会创建 Spout/Bolt 实例并进行 序列化。之后,将序列化的组件发送给所有的任务所在的机器 ( 即 Supervisor 节点 ) 在每一个任务上反序列化组件

第 11 章

1、试述 BSP模型中的超步的 3 个组件及具体含义。

答:①局部通信。 每个参与的处理器都有自身的计算任务, 它们只读取存储在本 地内存中的值,不同处理器的计算任务都是异步并且独立的。

②通信。处理器群相互交换数据,交换的形式是,由一方发起推送( Put)

和获取( Get)操作

完美 WORD格式编辑

***

***

专业资料整理分享

③栅栏同步。当一个处理器遇到“路障”(或栅栏),会等其他所有的处理 器完成它们的计算步骤;每一次同步也是一个超步的完成和下一个超步的开始。 2、Pregel 为什么选择一种纯消息传递模型? 答:采用这种做法主要基于以下两个原因。

①消息传递具有足够的表达能力,没有必要使用远程读取或共享内存的方 式。

②有助于提升系统整体性能。大型图计算通常是由一个集群完成的,集群环 境中执行远程数据读取会有较高的时间延迟; 量的方式传递消息,因此可以缓解远程

Pregel 的消息模式采用异步和批

读取的延迟。

Aggregator 的作用,并以具体

4、请简述 Aggregator 的作用,并以具体 Aggregator 的例子做说明。

答:Aggregator 提供了一种全局通信、监控和数据查看的机制。 Aggregator 的

聚合功能,允许在整型和字符串类型上执行最大值、最小值、求和操作,比如可 以定义一个“ Sum”Aggregator 来统计每个顶点的出射边数量,最后相加可以得 到整个图的边的数量。 Aggregator 还可以实现全局协同的功能,比如当可以设 计“and”Aggregator 来决定在某个超步中 Compute()函数是否执行某些逻辑 分支,只有当“ and”Aggregator 显示所有顶点都满足了某条件时,才去执行这 些逻辑分支。

6、简述 Pregel 的执行过程。

答:(1)选择集群中的多台机器执行图计算任务,每台机器上运行用户程序的 一个副本,其中,有一台机器会被选为

Master ,其他机器作为 Worker。

Worker。

(2)Master 把一个图分成多个分区,并把分区分配到多个

(3)Master 会把用户输入划分成多个部分,通常是基于文件边界进行划分。 (4)Master 向每个 Worker 发送指令,Worker 收到指令后, 开始运行一个超步。 当完成以后, Worker 会通知 Master ,并把自己在下一个超步还处于“活跃”状 态的顶点的数量报告给 Master 。上述步骤会被不断重复,直到所有顶点都不再 活跃并且系统中不会有任何消息在传输,这时,执行过程才会结束。

(5)计算过程结束后, Master 会给所有的 Worker 发送指令,通知每个 Worker 对自己的计算结果进行持久化存储。 8、试述 Worker 和 Master 的作用。

完美 WORD格式编辑

***

联系客服:779662525#qq.com(#替换为@)