• 在线客服

  • 扫描二维码
    下载博学谷APP

  • 扫描二维码
    关注博学谷微信公众号

  • 意见反馈

原创 大数据进阶面试题Storm开源软件

发布时间:2019-08-15 16:41:39 浏览 6285 来源:博学谷资讯 作者:照照

    大数据求职者眼中,Storm肯定是一款高效的开源软件,它主要用于解决数据的实时计算和实时的处理等方面的问题。同时Storm也是大数据进阶面试题的重难点,因此小编整理了一些近些年来比较经典常见有关Storm的面试题,希望对大家有用。

     

    大数据面试题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 或者是存储到某种介质上。介质可以是 mongodb 或 mysql,或者其他。

     

    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开源软件的所有大数据面试题整理。大家一定要好好把这些问题梳理一遍,这样一来在面试的时候,就不至于因为紧张而发挥失常了。

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: 数据分析四大误区 避坑指导 下一篇: 学大数据学得想哭?大数据真有这么难学吗?

相关推荐 更多

热门文章

  • 前端是什么
  • 前端开发的工作职责
  • 前端开发需要会什么?先掌握这三大核心关键技术
  • 前端开发的工作方向有哪些?
  • 简历加分-4步写出HR想要的简历
  • 程序员如何突击面试?两大招带你拿下面试官
  • 程序员面试技巧
  • 架构师的厉害之处竟然是这……
  • 架构师书籍推荐
  • 懂了这些,才能成为架构师
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码