13 个 Apache Storm 面试问题及答案
Storm 面试问题
以下是 Apache Storm 面试问题和答案,可帮助新手和经验丰富的开发人员候选人获得理想的工作。
1)解释一下什么是 Apache Storm?Storm 有哪些组件?
Apache storm 是一个开源分布式实时计算系统,用于处理实时大数据分析。与 Hadoop的 批处理,Apache storm 用于实时处理,并且可以与任何编程语言一起使用。
Apache Storm 的组件包括
- 雨云: 它充当 Hadoop 的作业跟踪器。它在集群中分发代码,上传计算以供执行,在集群中分配工作者,并监控计算并根据需要重新分配工作者
- 动物园管理员: 它用作与 Storm 集群通信的中介
- 主管: 通过Zookeeper与Nimbus进行交互,根据从Nimbus收到的信号执行流程。
2)为什么 Apache Storm 是实时处理的首选?
- 易于操作: 运营风暴安静轻松
- 非常快: 每个节点每秒可以处理 100 条消息
- 容错: 自动检测故障并重新启动功能属性
- 可靠: 保证每个数据单元至少执行一次或恰好执行一次
- 可扩展性: 它运行在一组机器上
3)解释一下 Apache Storm 中数据是如何流动的?
在 Apache Storm 中,数据以流的形式流动,包含三个组件 喷嘴,螺栓 和 元组
- 喷口: Spout 是 Storm 中的数据源
- 螺栓: 螺栓处理这些数据
- 元组: 数据以元组形式传递
4)请提及 Apache Hbase 和 Storm 有什么区别?
阿帕奇风暴 | 阿帕奇Hbase |
|
|
5)解释如何使用 Apache storm 简化日志文件?
要读取日志文件,您可以配置 喷口 并在读取日志时逐行发出。然后可以将输出分配给 Bolt 进行分析。

6) 解释 Apache Storm 中的流是什么以及流分组?
在 Apache Storm 中,流被称为 Tuple 的组或无界序列,而流分组决定了如何在 Bolt 的任务之间对流进行分区。
7) 列出 Apache storm 中的不同流分组?
- 随机分组
- 字段分组
- 全局分组
- 全部分组
- 无分组
- 直接分组
- 本地分组
8) 请提及风暴应用如何有益于金融服务?
在金融服务领域,Storm 可以帮助预防
- 证券欺诈
- 订单路由
- 定价
- 违规行为

9)解释 Apache Storm 中的 Topology_Message_Timeout_secs 是什么?
分配给拓扑以完全处理由 spout 发布的一条消息的最大时间量。如果在给定的时间范围内未确认该消息,Apache storm 将使 spout 上的消息失败。
10)解释一下 Apache Storm 中如何完全处理消息?
通过致电 下一个元组 在 Spout 上执行过程或方法时,Storm 会从 Spout 请求一个元组。Spout 利用 SpoutoutputCollector 在给出 open 方法将元组释放到其输出流之一。释放元组时, 喷口 分配一个“消息 ID”,稍后将使用该 ID 识别元组。之后,元组将发送到消费螺栓,storm 负责跟踪生成的消息树。
如果风暴确信一个元组已被彻底处理,那么它可以调用 ACK 原诉程序 喷口 使用 Spout 提供给 Storm 的消息 ID 来执行任务。
11)解释如何使用 Storm 将输出写入文件?
在 Spout 中,当你读取文件时, FileReader 对象 in 打开() 方法,这样它就为工作节点初始化了读取器对象。并在 nextTuple() 方法中使用该对象。
12)请提及 Apache Kafka 和 Apache Storm 之间有什么区别?
- 阿帕奇卡夫卡: 它是一个分布式、强大的消息传递系统,可以处理大量数据并允许消息从一个端点传递到另一个端点。
- 阿帕奇风暴: 它是一个实时消息处理系统,您可以实时编辑或操作数据。Apache storm 从 Kafka 中提取数据并应用一些必要的操作。
13) 解释在 Storm 中使用字段分组时,已知字段值是否有超时或限制?
Storm 中的字段分组使用 mod hash 函数来决定向哪个任务发送元组,从而确保哪个任务将按正确的顺序处理。为此,您不需要任何缓存。因此,已知字段值没有超时或限制。
这些面试问题也会对您的口试有所帮助。 参考我们的 Apache 教程 让您的面试更具优势。
11 号问题的答案是错误的。答案是关于从文件中读取数据,但问题是关于写入文件