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

Storm元数据总体交互

 
阅读更多

storm在zookeeper中存储结构

 storm采用zookeeper存储nimbus、supervisor、worker以及executor之间共享的元数据,模块重启之后可以通过对应元数据恢复,所以storm是无状态的。
 

$rootPath/workerbeats/$topology_id/$node_port 

 存储由node和port指定worker的运行状态和一些统计信息。 
 包括:topologyId、worker上executor统计信息(发送消息数,接收消息数等)、worker启动时间、最后一次更新时间。 

$rootPath/storms/$topology_id 

存储topology的本身信息:名字、启动时间、运行状态、要使用的worker数以及组件并行度设置,运行过程中不会变化。 

$rootPath/assignments/$topology_id 

   存储任务分配信息:topology在nimbus的存储目录、分配到supervisor机器到主机名的映射关系、每个executor运行在哪个worker以及每个worker的启动时间。运行过程中数据会变化。 
 

$rootPath/supervisors/$supervisor_id 

存储supervisor机器本身运行统计信息:最近一次更新时间、主机名、supervisorId、已经使用的端口列表、所有端口列表以及运行时间。运行过程中数据会变化。 

$rootPath/errors/$topology_id/$commponent_id/$sequential_id 

存储运行过程中每个组件发生的错误信息,sequential_id是递增的序列号,每一个组件最多只会保留最近的10条错误信息,他运行过程中是不会变,可能会被删除。  

 

storm元数据交互

nimbus

   nimbus既需要在zookeeper创建元数据,也需要从zookeeper中获取数据。

箭头1表示由nimbus创建的路径:

   a. /storm/workerbeats/$topology_id

   b. /storm/storms/$topology_id

   c. /storm/assignments/$topology_id

   nimbus提交数据时会创建a、b路径,a路径不写数据,b路径会写数据;

   nimbus分配任务时会创建c路径的同时设置数据,任务分配计划有变,Nimbus会更新内容。

 

 

箭头2表示由nimbus需要获取数据的路径:

   a. /storm/workerbeats/$topology_id/$node_port

   b. /storm/supervisors/$supervisor_id

   c. /storm/errors/$topoloty_id/$component_id/$sequential_id

   nimbus从a路径读取当前已经被分配的worker的运行状态,根据worker状态确定是否需要重新调度,还

   可以  获取到该worker的executor的运行统计信息。

   路径b获取集群supervisor的的状态,通过这些信息确认哪些空闲资源可用,哪些supervisor不再活跃,

   需要分配到其他节点上。

   路径c数据通过storm ui提供给用户看。

 

supervisor

  •   箭头3 /storm/supervisors/$supervisor_id,表示supervisor在zookeeper中创建的路径,新节点加入集群会创建一个节点。节点是临时的,一旦断开连接节点就会自动被zookeeper删除。这能保证nimbus能及时获取集群的节点信息,为容错&扩展提供基础。
  •   箭头4 /storm/assignments/$topology_id表示supervisor需要获取的路径,nimbus将分配信息的信息写入zookeeper,supervisor从zookeeper获取分配的任务,supervisor本地保存上次任务的信息,比较两次分配信息是否有变化,如果有变化,需要移除所对应的的worker,并创建新worker。
  •   箭头9表示supervisor会从localStae获取本机所有启动的worker的心跳信息,如果发现心跳信息超时会杀掉worker,原本分配的这个worker任务也会被nimbus重新分配。

  

worker

  •    箭头5中/storm/workerbeats/$topology_id/$node_port表示worker启动时会创建一个与其对应的节点,相当于注册。nimbus 在提交topology是会创建一个根路径/storm/workerbeats/$topology_id,不会设置数据。
  •    箭头6表示worker需要获取数据的路径/storm/assignments/$topology_id,worker获取到数据并根据取到的信息执行。
  •    箭头8表示worker在localState中保存心跳信息,localState实际上每隔几秒将心跳信息保存到本地文件中,worker和supervisor属于不同进程,通过本地文件来传递心跳。

 

executor

   executor只会利用zookeeper来记录自己的运行报错信息,会保存到以下目录

/storm/errors/$topology_id/$component_id/$sequential_id

  

 

 

  • 大小: 633.6 KB
分享到:
评论

相关推荐

    Storm实时数据处理

    Storm实时数据处理

    storm实时数据处理

    《storm实时数据处理》这本书深入探讨了Apache Storm这一强大的实时计算系统,它是大数据处理领域中的重要工具,尤其在实时流处理方面具有显著优势。Storm设计的核心理念是简单、可扩展和容错性,使得它在处理大规模...

    Storm实时数据处理_中文版

    Storm实时数据处理_中文版Storm实时数据处理_中文版Storm实时数据处理_中文版

    大数据-Storm实时数据处理

     《大数据技术丛书:Storm实时数据处理》通过丰富的实例,系统讲解Storm的基础知识和实时数据处理的最佳实践方法,内容涵盖Storm本地开发环境搭建、日志流数据处理、Trident、分布式远程过程调用、Topology在不同...

    《Storm实时数据处理》PDF.zip

    《storm实时数据处理》通过丰富的实例,系统讲解Storm的基础知识和实时数据处理的最佳实践方法,内容涵盖Storm本地开发环境搭建、日志流数据处理、Trident、分布式远程过程调用、Topology在不同编程语言中的实现方法...

    ( Storm实时数据处理.zip )PDF 高清版

    **Storm实时数据处理** Apache Storm是一个开源的分布式实时计算系统,它被设计用来处理无界数据流,确保每个事件都能得到正确的处理,即使在高并发和大规模数据输入的情况下也能保持低延迟。本资料《Storm实时数据...

    Storm实时数据处理-超清文字版.pdf

    《Storm实时数据处理》这本书是大数据处理领域的重要参考资料,它主要聚焦于Apache Storm这一开源分布式实时计算系统。Storm被广泛应用于实时分析、持续计算、分布式RPC、机器学习等多个场景,其核心理念是允许用户...

    StormStorm集成Kafka 从Kafka中读取数据

    在大数据实时处理领域,Apache Storm与Apache Kafka经常被结合使用,形成高效的数据流处理系统。本文将深入探讨如何实现Storm与Kafka的集成,重点在于如何从Kafka中读取数据。 **一、整合说明** Apache Storm是一...

    《Storm实时数据处理》PDF

    《Storm实时数据处理》

    storm实时数据处理 带书签目录pdf高清完整版

    storm实时数据处理 带书签目录pdf高清完整版 这个是带完整目录书签的高清扫描版

    Storm实时数据处理_PDF电子书下载 带书签目录 完整版

    Storm实时数据处理_PDF电子书下载 带书签目录 完整版

    Storm实时数据处理.pdf

    根据提供的文件信息,“Storm实时数据处理.pdf”,我们可以深入探讨与Apache Storm相关的实时数据处理技术。 ### Apache Storm简介 Apache Storm是一种分布式实时计算系统,能够处理无界数据流,即连续不断的数据...

    Storm实时数据处理.[澳]Quinton Anderson(带详细书签)

    处理数据流,包括基于规则的处理流程。 构建分布式远程过程调用。 交付基于多语言实现的Storm Topology,包括Java、Clojure、Ruby和C++。 将Storm与Cassandra、Hadoop集成。 使用Cascading实现基于批处理的单词重要...

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

    在分析Storm实时数据分析时,我们可以从以下几个方面入手: 1. 实时流处理框架:Storm的核心是一个实时计算的框架,它可以用来处理大量的数据流,而且是可扩展的。它能够保证每个消息至少被处理一次,这对于需要高...

    Storm综合案例二Storm集群向Kafka集群读取数据并写入MySQL远程模式

    思路:Storm集群从Kafkatopic主题获取数据,解析后写入MySQL,注意我们使用MyBatis工具与数据库交互 项目结构 部署MySQL 我们在服务器上部署一台MySQL数据库 具体参考这篇文章 数据库表结构如下: ...

    基于storm海量数据的实时聚类

    ### 基于Storm海量数据的实时聚类 #### Storm整体框架说明 Storm是一个免费、开源的分布式实时计算系统,由BackType开发并维护。它提供了简单易用的API,可以方便地创建复杂的流处理应用。Storm的设计目标是提供一...

    实时计算平台STORM流式数据核心技术与报文系统.pdf

    - **DRPC(Distributed Remote Procedure Call)**:支持分布式远程过程调用,允许实时查询和响应,增强了Storm的交互性。 4. **基于Storm的报文系统** - **报文系统需求分析**:报文系统通常需要处理高并发、低...

Global site tag (gtag.js) - Google Analytics