Storm面试题有哪些

发布时间:2021-12-23 15:44:23 作者:iii
来源:亿速云 阅读:169

本篇内容介绍了“Storm面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、架构

1、Nimbus

负责资源分配和任务调度。新版本中的 nimbus 节点可以有多个做主备。

2、Zookeeper

协调集群,公共数据的存放(如心跳数据,集群的状态和配置信息),nimbus 将分配给 Supervisor 的任务写入到 Zookeeper

3、supervisor

负责接受 nimbus 分配的任务,启动和停止属于自己管理的 worker进程。

4、worker

运行具体处理组件逻辑的进程。worker 中每一个 spout/bolt 的线程称为一个task. 在 storm0.8 之后,task 不再与物理线程对应,同一个 spout/bolt 的 task 可能会共享一个物理线程,该线程称为 executor。最新版本的 Jstorm 已经废除了 task 的概念

二、编程模型

1、Spout

Spout 是接受外部数据源的组件,将外部数据源转化成 Storm 内部的数据, 以 Tuple 为基本的传输单元下发给 Bolt。(Tuple 是 Storm 内部中数据传输的基本单元,里面封装了一个 List 对象,用来保存数据。)

2、Bolt

Bolt 是接受 Spout 发送的数据,或上游的 bolt 的发送的数据。根据业务逻辑进行处理。发送给下一个 Bolt 或者是存储到某种介质上。介质可以是 mongodbmysql,或者其他。

3、并行度

Worker:表示一个进程

Executor:表示由 worker 启动的线程

Task:实际执行数据处理的最小工作单元(注意,task 并不是线程)

并行度的设置:评估上游 kafka 每秒生产的数据量,分析 topic 每个 partition

每秒的数据量,partition 的数据量=SpoutTask 接受数据量SpoutTask 数量=partition 的数量

Worker 的设置:如果数据量大,worker 的数量等于 spouttask 的数量

4、消息不丢失

ack 机制即, spout 发送的每一条消息,

l在规定的时间内,spout 收到 Acker 的 ack 响应,即认为该 tuple 被后

l

续 bolt 成功处理

l在规定的时间内,没有收到 Acker 的 ack 响应 tuple,就触发 fail 动作, 即认为该 tuple 处理失败,

l或者收到 Acker 发送的 fail 响应 tuple,也认为失败,触发 fail 动作。通过 Ack 机制,spout 发送出去的每一条消息,都可以确定是被成功处理或失败处理, 从而可以让开发者采取动作。比如在 Meta 中,成功被处理,即可更新偏移量,当失败时,重复发送数据。因此,通过 Ack 机制,很容易做到保证所有数据均被处理,一条都不漏。

“Storm面试题有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. Storm面试题案例分析
  2. Storm的特点有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

storm

上一篇:如何在嵌入式中使用TensorFlow Lite

下一篇:mysql中出现1053错误怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》