当前位置: 首页 > 知识库问答 >
问题:

Storm如何管理集群模式上的共享数据?

东方弘壮
2023-03-14

最近我正在开发一些针对storm拓扑的计时工具,但是对于storm集群中的数据共享,我还是有一些疑问:

>

  • 如果一个组件(spout/bolt)为每个工作者配置了多个执行器,假设工作者号为1,组件的parallelism_hint为3,任务号使用默认设置(即1),是否意味着该组件在工作者中有3个实例?如果不是,是否应该在同步块中使用组件的字段?

    如果在组件中(prepare()open()方法内)创建了一个名为“athread”的附加线程,那么storm集群中有多少个“athread”实例?

    正如理解Storm拓扑的并行性所说,工作进程是一个单独的进程,并且工作进程执行拓扑的子集。这是否意味着拓扑的全局变量(如公共静态字段或其他静态变量)只能在一个Worker中共享?

  • 共有1个答案

    聂溪叠
    2023-03-14

    1)设置parallelism hint=3将要求storm分配3个执行器(线程),并在默认情况下为该组件创建3个任务(请注意,如果未显式配置storm将在默认情况下为每个执行器运行一个任务的任务数)。如果设置no task=1,则三个线程将在同一组件实例上操作。

    2)假设您使用默认设置(1个执行器和1个任务/组件)运行,它将创建thread对象的一个实例,因为Prepare/Open方法只会被调用一次。

    3)静态变量将由给定工作者中组件的所有实例共享。

    4)不知道您的确切意思是什么,如果您使用多个执行程序和一个任务运行,那么当线程AHibernate时,另一个线程B可能正在处理元组

     类似资料:
    • 共享是由文件存储提供的。您可以对实例开放存取共享文件的权限。如要创建共享,您可以使用manila命令行客户端。 创建共享网络 创建共享网络 $ manila share-network-create --name mysharenetwork --description "My Manila network" --neutron-net-id 394246ed-d3fd-4a30-a456-704

    • 我在Vert发展。x(基于Netty和Hazelcast),我正在尝试在两个服务器实例之间共享数据(在同一局域网上的不同机器中的每个实例)。 我的问题是我不知道如何配置vert. x服务器以允许它们共享它们的并发内存映射(理论上说这是可能的)。 我已经阅读了Vert. x和Hazelcast的许多文档,但还没有结果。(我不知道如何强制vert. x加载hazelcast xml配置文件)。 提前感

    • 我在本地模式和集群模式下都使用apache storm 1.1.0。对于喷口,我正在阅读Kafka主题中的数据(我使用的是Kafka2.11-0.8.2.1)。当我在本地模式下使用storm时,Spout会读取kafka主题中的数据,并且也会发出数据,但当我在集群模式下运行storm时,Spout不会发出任何数据。 知道为什么topology spout在集群模式下不发射任何数据吗?如有任何帮助,

    • 有人有一个如何使用infinispan目录提供程序配置节点集群以共享索引的工作示例吗?Infinispan上的所有留档(留档严重缺乏btw)意味着它应该像设置一些属性一样简单,但无论我如何尝试,我都无法让它工作。集群中的节点彼此找到很好,我可以在一个节点上进行操作并获取放在另一个节点上的对象。但是一旦我进行查询(使用索引),它就开始失败。 我的infinispan配置: 我没有找到一个包含共享索引

    • 问题内容: 我有一个由多个团队共享的Jenkins集群,可以在其上配置构建作业,但是我无法轻松地对Jenkins配置本身进行更改。 有一个中央的“ nexus pro” maven存储库管理器,但是这个非常大的跨国公司中的每个团队/小组都有自己的存储库,发布到存储库需要用户名/密码组合。 这意味着我必须使用一个maven settings.xml配置Jenkins服务器,这对我正在使用的团队是唯一