Jstorm基础架构

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,182元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: Jstorm基础架构

整体架构

1.png

深度基于Zookeeper的调度系统。

Jstorm ZK路径

/-{storm.zookeeper.root}           -- Jstorm在zookeeper上的根目录,需要在jstorm中配置~/.jstorm/storm.yaml
  |                            
  |
  |-/nimbus_master                -- nimbus_master 的ip和端口
  | 
  |-/nimbus_slave                 --nimbus_slave信息,如果没有nimbus slave,此节点没有信息
  |
  |-/supervisors            -- 所有的supervisor的心跳信息
  |   |                        
  |   |-/{supervisor-id}    -- class SupervisorInfo,hostName,supervisorId,timeSecs(心跳最后更新时间),uptimeSecs(运行时间),version,port, Set<workerPort>,Set<availableWorkerPort>,Map<Object, Object> supervisorConf
  |                            
  |
  |-/assignments            --所有拓扑的分配资源信息
  |   |
  |   |-/{topology-id}      -- class Assignment,<supervisorId, hostname>--主机映射,masterCodeDir--nimbus上的代码目录,<TaskId, StartUpTime> 所有task的启动时间,  Set<ResourceWorkerSlot>,每个Worker的资源分配,包括hostname,memSize,cpu,tasks,jvm
  |                            
  |-/assignments_bak         -- 备份所有拓扑的分配资源信息
  |   |
  |   |-/{topology-name}      -- class AssignmentBak, Assignment assignment--分配信息备份,Map<ComponentId, List<TaskId>> 一个组件对应多个Task
  |
  |                           
  |-/blobstoremaxkeysequencenumber   --大对象的存储最大的序号,当使用BlobStore Nimbus Local 模式时保持一致性
  |
  |-/topology
  |   |
  |   |-/{topology-id}           --class StormBase ,记录topologyName,lanchTimeSecs,Topology status,enableMonitor,group
  |
  |-/blobstore                  --Blobstore 有两种模式,Nimbus Local 和 HDFS,默认是本地配置,使用Nimbus Local时需要zookeeper保证一致性,而HDFS自身已经提供了
  |   |
  |   |-{}                       --本地模式blobstore会存放到 storm.local.dir/blobs/ 目录,自定义存放目录可以通过blobstore.dir强制指定一个绝对路径。
  |
  |-/taskbeats 
  |   |
  |   |-/{topology-id}      
  |       |                    
  |       |-/{task-id}      -- class TopologyTaskHbInfo, Map<TaskId,TaskHeartbeat>--task的心跳,topologyId,topologyMasterId
  |                            
  |                                                
  |                           
  |-/tasks                 
  |   |
  |   |-/{topology-id}      -- Map<TaskId, TaskInfo> 一个taskId对应一个组件信息TaskInfo,一个组件可能是Spout或者Bolt,class TaskInfo,componentId,componentType
  |
  |
  |-/taskerrors                --所有topology task的错误信息
  |   |
  |   |-/{topology-id}         
  |        |                    
  |        |-/{task-id}      -- 对应task的出错信息
  |        |    |
  |        |    |-/{time}     -- 时间戳,以妙为单位,只保存最近两个错误,通过 zkCluster.report_task_error(topologyId, taskId, errorMessge),可以自定义错误,界面会显示"E(2)"
  |        |
  |        |-/{last_error}   -- 最后的错误信息 Map<Integer, String> lastErrInfo    
  |
  |
  |-/metrics                 
  |   |
  |   |-/__NIMBUS__         --nimbus metric信息
  |   |-/__SUPERVISOR__     --superviser metric信息
  |   |-/{topology-id}      --topology metric信息
  |   |-/ __CLUSTER__       --cluster metric信息
  |              
  |   
  |-/nimbus_slave_detail    -- nimbus_slave细节信息
  |   |                    
  |   |-/{hostPort}      --  mtmp.put("nimbus.differ.count.zk", diffCount); 
  |                            
  |

Jstorm 所有的zk路径都在 com.alibaba.jstorm.cluster.Cluster类中

相关文章
|
SQL 关系型数据库 MySQL
遇到mysql数据库死锁,你会怎么排查?
遇到mysql数据库死锁,你会怎么排查?
1044 0
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
1048 2
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
712 18
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
|
消息中间件 NoSQL 关系型数据库
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
829 1
|
存储 NoSQL 关系型数据库
Redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
Redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
443 0
|
SQL 负载均衡 算法
自适应批作业调度器:为 Flink 批作业自动推导并行度
1.15 版本新引入的调度器,在作业运行时根据每个算子需要处理的实际数据量来自动推导并行度。
自适应批作业调度器:为 Flink 批作业自动推导并行度
|
jstorm 分布式计算 Hadoop
|
Dubbo Java 应用服务中间件
掌握微服务:Spring Cloud 对比 Dubbo
Spring Cloud 框架为开发人员提供了快速构建健壮云应用程序的工具。我们还可以构建基于微服务的应用程序,例如配置管理、服务发现、断路器、智能路由、集群状态、微代理、控制总线、一次性令牌等。
|
消息中间件 分布式计算 安全
如何禁用Kerberos
如何禁用Kerberos
577 0
|
JSON Java 数据库连接
SpringBoot 使用cas5.3 认证中心返回多属性配置
cas-server默认的可用信息只有用户名, 如果我还想知道他的角色类型等其它属性,这时候就需要做一些配置了。其它代码编写代码方式这里不做介绍,只做简单配置的方式介绍。
923 0