《Storm企业级应用:实战、运维和调优》——1.3 Storm核心组件[通俗易懂]

《Storm企业级应用:实战、运维和调优》——1.3 Storm核心组件

大家好,又见面了,我是全栈君。

本节书摘来自华章计算机《Storm企业级应用:实战、运维和调优》一书中的第1章,第1.3节,作者:马延辉 陈书美 雷葆华著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.3 Storm核心组件

了解Storm的核心组件对于理解Storm原理非常重要,下面介绍Storm的整体,然后介绍Storm的核心。Storm集群由一个主节点和多个工作节点组成。主节点运行一个名为“Nimbus”的守护进程,工作节点都运行一个名为“Supervisor”的守护进程,两者的协调工作由ZooKeeper来完成,ZooKeeper用于管理集群中的不同组件。
每一个工作节点上运行的Supervisor监听分配给它那台机器的工作,根据需要启动/关闭工作进程,每一个工作进程执行一个Topology的一个子集;一个运行的Topology由运行在很多机器上的很多工作进程Worker组成。那么Storm的核心就是主节点(Nimbus)、工作节点(Supervisor)、协调器(ZooKeeper)、工作进程(Worker)、任务线程(Task)。
1.3.1 主节点Nimbus
主节点通常运行一个后台程序——Nimbus,用于响应分布在集群中的节点,分配任务和监测故障,这类似于Hadoop中的JobTracker。
Nimbus进程是快速失败(fail-fast)和无状态的,所有的状态要么在ZooKeeper中,要么在本地磁盘上。可以使用kill -9来杀死Nimbus进程,然后重启即可继续工作。
1.3.2 工作节点Supervisor
工作节点同样会运行一个后台程序——Supervisor,用于收听工作指派并基于要求运行工作进程。每个工作节点都是Topology中一个子集的实现。而Nimbus和Supervisor之间的协调则通过ZooKeeper系统。
同样,Supervisor进程也是快速失败(fail-fast)和无状态的,所有的状态要么在ZooKeeper中,要么在本地磁盘上,用kill -9来杀死Supervisor进程,然后重启就可以继续
工作。
1.3.3 协调服务组件ZooKeeper
ZooKeeper是完成Nimbus和Supervisor之间协调的服务。Storm使用ZooKeeper协调集群,由于ZooKeeper并不用于消息传递,所以Storm给ZooKeeper带来的压力相当低。在大多数情况下,单个节点的ZooKeeper集群足够胜任,不过为了确保故障恢复或者部署大规模Storm集群,可能需要更大规模的ZooKeeper集群。Nimbus、Supervisor与ZooKeeper的关系如图1-11所示。

image

1.3.4 其他核心组件
Storm的组件不止上面的,还有一些组件也是Storm的核心,缺一不可。下面简单介绍Worker和Task。
1)具体处理事务进程Worker:运行具体处理组件逻辑的进程。
2)具体处理线程Task:Worker中的每一个Spout/Bolt线程称为一个Task。在Storm 0.8之后,Task不再与物理线程对应,同一个Spout/Bolt的Task可能会共享一个物理线程,该线程称为Executor。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108376.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • translate函数用法_fork函数在循环体中

    translate函数用法_fork函数在循环体中TranslateMessage函数函数功能描述:将虚拟键消息转换为字符消息。字符消息被送到调用线程的消息队列中,在下一次线程调用函数GetMessage或PeekMessage时被读出。.函数原型:   BOOLTranslateMessage( CONSTMSG*lpMsg);.参数:   lpMsg       指向一个含有用GetMessage或PeekMe

    2025年11月5日
    5
  • 数学速算法_小学初中高中 数学奥数教材及习题讲解(共42册PDF)「建议收藏」

    数学速算法_小学初中高中 数学奥数教材及习题讲解(共42册PDF)「建议收藏」学习勤育儿|爱自己在育儿的道路上,家长和孩子一同成长;慢慢陪孩子走,把我们的时间浪费在孩子身上,是世间最有价值的浪费!资源介绍奥数对青少年的脑力锻炼有着一定的作用,可以通过奥数对思维和逻辑进行锻炼,对学生起到的并不仅仅是数学方面的作用,通常比普通数学要深奥些。奥数相对比较深,数学奥林匹克活动的蓬勃发展,极大地激发了广大少年儿童学习数学的兴趣,成为引导少年积极向上,主动探索…

    2022年6月30日
    24
  • 简单工厂模式

    简单工厂模式

    2021年11月13日
    46
  • 什么是高并发 ,详细讲解[通俗易懂]

    什么是高并发 ,详细讲解[通俗易懂]一、什么是高并发高并发(HighConcurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(ResponseTime),吞吐量(Throughput),每秒查询率QPS(QueryPerSecond),并发用户数等。 响应时间:系统对请求做出响应的时间。例如系统处理一…

    2022年5月31日
    35
  • Android P版本应用兼容性适配技术指导「建议收藏」

    ndroidP版本中伴随很多机制和新增特性的改变,对自研以及第三方应用带来了很多兼容性问题。本文档第1章主要介绍谷歌P版本开发环境搭建以及调试;第2章节主要是对P版本兼容性现状一些摸底测试情况以及问题分类;第3章节主要是P版本一些特性介绍以及应用适配P版本的一些开发指导。1. AndroidP背景1.1AndroidP版本里程碑Preview1 (initialrelease,alp…

    2022年4月10日
    40
  • ubuntu nginx安装配置_PHP开发环境搭建步骤

    ubuntu nginx安装配置_PHP开发环境搭建步骤一、说明正在尝试基于nginx+php搭建web服务器,中途遇到不少问题。挣扎了三四个小时终于完成了,这里分享下经验。实验环境操作系统:Ubuntu18.0464位nginx:1.14.0php:7.2.17-0php-fram:php7.2-fpm二、实验步骤1、安装必要程序以及依赖#安装程序包sudoapt-getinstallphp7.2…

    2022年9月22日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号