使用storm时如何将拓扑上下文中的对象访问到bolt中?

2024-01-04

我们在创建拓扑时需要传递一个对象,以便 Bolt 可以访问该对象并基于该对象进行一些进一步的处理。是否可以通过传递对象TopplogyContext如果是,怎么办?或者是否有其他方法可以在提交拓扑时传递对象,然后再提交,以便 Bolt 可以对其进行句柄/控制?

我们需要通过上下文传递对象,以便所有 Bolt 都可以访问它,并且不需要在该拓扑的所有 Bolt 中强制实现构造函数。那么,想知道是否存在可以执行相同操作的 API?


您可以在storm配置映射中传递该对象,前提是它是可序列化的。 在拓扑中任何 spout 或bolt 的prepare() 方法中,您可以检索此对象。

这是在拓扑提交时将对象放入配置映射中的方式:

Config conf = new Config();
MyObject myPreciousObject = new MyObject("precious");
conf.put("my.object",myPreciousObject);

StormSubmitter.submitTopology(args[0], conf, builder.createTopology());

这是在bolt或spout的prepare()方法中检索它的方法:

prepare(Map stormConf,TopologyContext context) {

   MyObject myPreciousObject = (MyObject) stormConf.get("my.object");

} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用storm时如何将拓扑上下文中的对象访问到bolt中? 的相关文章

  • 如何将两个不同Spout的输出发送到同一个Bolt?

    我有两个 Kafka Spout 我想将它们的值发送到同一个 Bolt 是否可以 对的 这是可能的 TopologyBuilder b new TopologyBuilder b setSpout topic 1 new KafkaSpou
  • 如何通过 eclipse 在本地集群/模式下调试 Apache Storm

    使用以下问答 我设法通过 Apache Storm 集群 本地运行 上的 eclipse 启用调试 如何在 Eclipse 中调试 Apache Storm My conf storm yaml有以下行可以在工作节点上启用调试 worker
  • 测试java HBase连接

    我正在尝试使用 HBase Java API 将数据写入 HBase 我通过 Ambari 安装了 Hadoop HBase 以下是当前设置配置的方式 final Configuration CONFIGURATION HBaseConfi
  • Storm:如何将字符串数组从一个螺栓传递到另一个螺栓?

    这就是我发出数据的方式 collector emit stream new Values sessionid tables Where sessionid and tables are ArrayList
  • Storm拓扑未提交

    我已经配置了我的机器zookeeper nimbus supervisor运行正常 并且我的拓扑在LocalCluster中工作 LocalCluster cluster new LocalCluster cluster submitTop
  • 如何使用 Log4j 和 Storm Framework 将日志写入文件?

    我在 Storm 中使用 log4j 记录到文件时遇到了一些问题 在提交我的拓扑之前 即在我的主要方法中 我编写了一些日志语句并使用以下方法配置了记录器 PropertyConfigurator configure myLog4jPrope
  • 使用storm时如何将拓扑上下文中的对象访问到bolt中?

    我们在创建拓扑时需要传递一个对象 以便 Bolt 可以访问该对象并基于该对象进行一些进一步的处理 是否可以通过传递对象TopplogyContext如果是 怎么办 或者是否有其他方法可以在提交拓扑时传递对象 然后再提交 以便 Bolt 可以
  • 读取 Storm 集群中的 AWS SQS 队列时,导致这些 ParseError 异常的原因是什么

    我正在使用 Storm 0 8 1 从 Amazon SQS 队列中读取传入消息 并且在执行此操作时遇到一致的异常 2013 12 02 02 21 38 executor ERROR java lang RuntimeException
  • 以集群模式在同一物理节点上运行 Storm nimbus 和supervisor

    我现在有一个包含 2 个物理节点的 Storm 集群 我在跑storm nimbus在节点 1 上和storm supervisor在节点 2 上 看起来我的所有拓扑都仅在节点 2 管理节点 上运行 我也应该在节点 1 上运行主管吗 Tha
  • Storm 如何知道消息何时“完全处理”?

    还有一些关于超时和 maxSpoutPending 的问题 我在 Storm 文档中看到很多关于消息被完全处理的参考资料 但是我的 KafkaSpout 如何知道消息何时被完全处理 希望它能够识别我的 Bolt 的连接方式 以便当我的 St
  • 如何在storm中注册kryo序列化器实例?

    我拼命尝试配置序列化器实例以在我的风暴拓扑中使用 Storm 文档指出 有两种注册序列化器的方法 1 The name of a class to register In this case Storm will use Kryo s Fi
  • Storm动态拓扑

    Storm 支持动态拓扑吗 我想要的功能是在 Storm 拓扑运行时根据用户要求动态更改拓扑 例如 当用户想知道流的前 10 个单词时 我使用前 10 个 Bolt 来处理它 当用户想知道其他内容时 我使用另一个 Bolt 来处理流并 拔掉
  • 如何在 Intellij IDEA 中构建和运行 Storm Topology

    我按照 Storm Starter 说明并在 IntelliJ 中导入了 Twitter Storm 为了测试 我编辑了感叹拓扑一点并使用以下 Maven 命令来构建并运行它 mvn f m2 pom xml compile exec ja
  • Apache Kafka 与 Apache Storm

    Apache Kafka 分布式消息系统Apache Storm 实时消息处理 我们如何在实时数据管道中使用这两种技术来处理事件数据 就实时数据管道而言 在我看来 两者的工作都是相同的 我们如何在数据管道上使用这两种技术 您可以使用 Apa
  • 风暴最大喷口待定

    这是一个关于 Storm 的最大喷口待处理如何工作的问题 我目前有一个 spout 它读取文件并为文件中的每一行发出一个元组 我知道 Storm 不是处理文件的最佳解决方案 但我对此问题没有选择 我设置了topology max spout
  • 将数据从 oracle 移动到 HDFS,处理并从 HDFS 移动到 Teradata

    我的要求是 将数据从 Oracle 移至 HDFS 处理HDFS上的数据 将处理后的数据移至 Teradata 还需要每 15 分钟执行一次整个处理 源数据量可能接近50GB 处理后的数据也可能相同 在网上搜索了很多之后 我发现 PRARO
  • Storm Spout 未收到 Ack

    我已经开始使用storm 所以我使用创建简单的拓扑本教程 https github com nathanmarz storm wiki Tutorial 当我运行我的拓扑时LocalCluster一切看起来都很好 我的问题是我没有得到元组的
  • 未能在kafka-storm中将偏移量数据写入zookeeper

    我正在设置一个风暴集群来计算实时趋势和其他统计数据 但是我在将 恢复 功能引入到这个项目中时遇到了一些问题 方法是允许上次读取的偏移量kafka spout 源代码为kafka spout来自https github com apache
  • Apache Storm Nimbus 错误:无法找到或加载主类

    我尝试为本地开发 Windows 7 工作站启动 Storm Nimbus 时遇到以下错误 错误 无法找到或加载主类 Files Java jdk1 8 0 92 bin C Program 风暴 yaml storm zookeeper
  • 如何在保留矩阵维度的同时序列化 numpy 数组?

    numpy array tostring似乎没有保留有关矩阵维度的信息 请参阅这个问题 https stackoverflow com q 30697769 1156707 要求用户发出调用numpy array reshape 有没有办法

随机推荐