Jstorm基础架构

简介: 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类中

相关文章
|
存储 JavaScript 前端开发
前端xss攻击——规避innerHtml过滤标签节点及属性
前端xss攻击——规避innerHtml过滤标签节点及属性
1083 4
|
Java 中间件 微服务
27个阿里 Java 开源项目,值得收藏!
大家好,这里为大家整理了阿里的Java开源项目,希望对大家有所帮助
12838 0
27个阿里 Java 开源项目,值得收藏!
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
1277 2
|
SQL 关系型数据库 MySQL
遇到mysql数据库死锁,你会怎么排查?
遇到mysql数据库死锁,你会怎么排查?
1257 0
|
存储 人工智能 API
七种RAG架构cheat sheet!
RAG 即检索增强生成,是一种结合检索技术和生成模型的人工智能方法。Weaviate厂商给出了七种RAG架构cheat sheet。
1157 18
|
存储 关系型数据库 MySQL
10个案例告诉你mysql不使用子查询的原因
大家好,我是V哥。上周与朋友讨论数据库子查询问题,深受启发。为此,我整理了10个案例,详细说明如何通过优化子查询提升MySQL性能。主要问题包括性能瓶颈、索引失效、查询优化器复杂度及数据传输开销等。解决方案涵盖使用EXISTS、JOIN、IN操作符、窗口函数、临时表及索引优化等。希望通过这些案例,帮助大家在实际开发中选择更高效的查询方式,提升系统性能。关注V哥,一起探讨技术,欢迎点赞支持!
638 5
|
机器学习/深度学习 人工智能 算法
神经网络算法——反向传播 Back Propagation
神经网络算法——反向传播 Back Propagation
1075 0
|
存储 机器学习/深度学习 分布式计算
Hadoop学习笔记(HDP)-Part.12 安装HDFS
本系列为HDP大数据平台部署实战指南,涵盖HDFS、YARN、Hive等核心组件安装配置,详解Ambari集群搭建、Kerberos安全认证及高可用实现,助力快速构建企业级大数据环境。
1019 0
|
jstorm 分布式计算 Hadoop
|
存储 NoSQL 关系型数据库
Redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
Redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
516 0

热门文章

最新文章