`
woodding2008
  • 浏览: 289552 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Storm Nimbus中的线程

 
阅读更多

nimbus计时器线程

nimbus除主线程之外还有一个计数器线程,他主要有三个作用:

  • 调用mk-assignment方法启动新一轮任务的分配,调用do-cleanup方法清理storm元数据。这两项操作会每个nimbus.monitor.freq.secs执行一次,默认值:10秒。
  • 调用clean-inbox方法清理nimbus本地目录中的topoloyg的jar包。该操作每个nimbus.cleanup.inbox.freq.secs执行一次,默认值:600秒。
  • topology的状态转移时间,只有当nimbus接收到对应的服务请求时才会触发,比如:kill、rebalance、activate、deactivate。


mk-assignments方法

     主要负责对当前集群中所有topology进行新一轮的任务调度。

  • 检查已经运行topology所占用的资源,判断他们是否有问题,是否需要重新分配。
  • 根据系统当前的可用资源,为新提交的topology分配任务。
  • 将所有的分配信息保存或更新到zookeeper中。
  • supervisor会周期性的检查这些分配信息,并根据这些分配信息做相应的调度处理。


do-cleanup方法

主要用来判断哪些topology需要清理,并对需要清理的topology做相应的处理。

  • 先删除topology保存在zookeeper中的心跳以及错误信息。
  • 尝试清理nimbus本地目录中相关文件,并从nimbus心跳缓存中移除对应的信息。


clean-inbox方法

主要负责清理nimbus的inbox文件夹$rootPath/nimbus/inbox最后一次修改时间超过了nimbus.inbox.jar.expiration.secs的限定,默认值3600秒。

 

分享到:
评论

相关推荐

    Storm源码走读笔记

    本文档是关于Storm源码的详细走读笔记,主要分析了Storm的启动场景、Topology提交过程、worker进程中的线程使用情况、消息传递机制以及 TridentTopology的创建和ack机制等多个方面。 首先,文档提到了Storm集群中的...

    nimbus.pdf

    标题中的“Nimbus.pdf”表明本文档重点讨论了Storm组件中的Nimbus角色。Nimbus是Apache Storm的一个关键组件,负责资源调度和任务分配,与Zookeeper和Supervisor一起构成了Storm集群的核心架构。标题还隐含了文档将...

    STORM学习文档

    mk-assignments 是 Storm 中的一个关键函数,负责计算出有多少 task,包括 Spout 和 Bolt 任务,并将其写入 Zookeeper,以便 Supervisor 感知到有新的任务需要认领。 五、Worker 进程中的线程种类及用途 Worker ...

    storm安装软件包

    4. **启动Nimbus**:在Nimbus节点上,执行`bin/storm nimbus`命令启动Nimbus服务。 5. **启动Supervisor**:在所有Supervisor节点上,执行`bin/storm supervisor`命令启动Supervisor服务。 6. **启动UI**:执行`...

    Storm 源码分析

    - **Nimbus**:Nimbus是Storm集群的核心组件之一,负责整个集群的管理和协调工作,包括任务调度、故障恢复等。Nimbus通过Zookeeper来实现状态同步和集群协调。 - **Supervisor**:Supervisor运行在每个Worker节点上...

    storm剖析(pdf)

    任务(Task)通常在Executor线程中执行,并且一个Worker可以运行多个Task。 Storm集群中的状态可以保存在Zookeeper或者本地磁盘上。Nimbus和Supervisor节点都是无状态(state-less)的,并且设计为快速失败(fail-...

    storm集群的搭建-java示例代码.zip

    Storm集群的搭建是大数据处理中的一个重要环节,尤其对于需要实时分析和处理连续数据流的应用场景,如实时日志分析、社交网络分析等。本资料包提供了一个基于Java的示例代码,将帮助我们了解如何在Java环境中配置和...

    storm原理分析

    Storm-Kafka 是 Storm 社区提供的 Kafka 消费者实现,允许 Storm 从 Kafka 中读取数据。offset 是 Kafka 中用来标识消息位置的唯一标识符。Storm-Kafka 通过 offset 管理来确保消息的有序处理和重试机制。通常情况下...

    Apache Hadoop---Storm.docx

    Workers运行具体的Spout和Bolt任务,每个worker可以包含多个task,这些task在executor线程中运行。Spout作为数据源,从外部数据源拉取数据并转化为内部的Tuple;Bolt接收Tuple进行处理,并决定数据是否继续传递到下...

    storm企业应用 实战 运维和调优

    但是根据标题和描述中的信息,我能够为你生成关于Storm企业应用实战运维和调优的知识点。 Apache Storm是一个实时计算的分布式计算框架,它类似于Hadoop,但它是为了实时处理而不是批处理设计的。Storm可以处理大量...

    那些storm的坑坑

    3. **源码分析**:深入理解Storm的内部机制,如Executor线程模型、Tuple生命周期管理以及容错机制。 4. **工具使用**:推荐的开发工具(如IntelliJ IDEA、Eclipse插件),部署工具(如Nimbus、Supervisor),以及...

    Storm的文档详解

    - **Non Grouping**:默认分组,与 Shuffle Grouping 效果相似,但可能在同一线程中执行。 - **Direct Grouping**:直接分组,允许上游组件指定下游 Task 来处理 Tuple。 Storm 提供了丰富的 API 和组件,使其...

    storm实时计算

    在Storm中,Zookeeper主要用来存储Supervisor和Worker的心跳信息、集群状态和配置信息,以及Nimbus分配给Supervisor的任务信息。 2. **Java序列化**:用于将对象转换成二进制形式以便在网络上传输或持久化存储。...

    strom的安装

    随后,安装 Storm,同样需要更新环境变量,指定 Storm 安装路径,并在 `storm.yaml` 配置文件中配置 ZooKeeper 地址、Nimbus 主机地址、本地工作目录以及 Supervisor 的工作端口。 启动集群时,首先启动 ZooKeeper...

    storm一个简单实例

    3. **Storm集群部署**:实例在集群中运行,说明会涉及Zookeeper协调、Nimbus节点分配任务、Supervisor管理worker进程等集群管理内容。 4. **Java编程**:作为主要开发语言,Java提供了丰富的类库和工具,使得开发、...

    批量下载】storm环境搭建v1等.zip

    6. **配置优化**:在搭建环境中,可能需要对Storm的配置参数进行调整,如worker数量、executor线程数、心跳间隔等,以适应不同的性能需求。 7. **监控和调试**:Storm提供了一套监控工具,包括Web UI,可以查看拓扑...

    Storm实战培训教程.pptx

    - Supervisor负责在工作节点上启动和管理Worker进程,每个Worker进程中包含多个线程,线程则运行任务(Task),任务是实际处理数据的实体。 - Nimbus是主控节点,负责分配和调度Topologies到各个Supervisor上,...

    storm实时数据分析 用到的技术分析

    工作进程负责执行实际的数据处理任务,而任务(task)是在工作进程中的线程,执行具体的Spout或Bolt任务。 4. Storm内部运行机制:Storm通过Zookeeper集群来协调节点之间的工作,并保证任务分配的高效和可靠性。...

    漫谈大数据第四期-storm

    Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm之于实时处理,就好比Hadoop之于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。更棒的...

Global site tag (gtag.js) - Google Analytics