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

Storm拓扑配置

吕天逸
2023-03-14

如何为storm拓扑提供自定义配置?例如,如果我构建了一个连接到MySQL集群的拓扑,并且我希望能够更改需要连接到哪些服务器而不需要重新编译,我将如何做到这一点?我更喜欢使用配置文件,但我担心文件本身没有部署到集群中,因此它不会运行(除非我对集群工作方式的理解有缺陷)。到目前为止,我所看到的在运行时将配置选项传递到storm拓扑的唯一方法是通过命令行参数,但当您获得大量参数时,这将是混乱的。

有一个想法是利用shell脚本将文件读入变量,并将该变量的内容作为字符串传递给拓扑,但如果可能的话,我想要一些更干净的东西。

共有1个答案

裴实
2023-03-14

您可以指定与拓扑一起提交的配置(通常通过yaml文件)。我们在自己的项目中如何管理这一点,是我们有单独的配置文件用于开发,一个用于生产,并在其中存储我们的服务器、redis和db IPs和端口等。然后,当我们运行命令构建jar并将拓扑提交给storm时,根据您的部署环境,它包括正确的配置文件。螺栓和喷口只需从stormConf映射中读取它们所需的配置,该映射在螺栓的prepare()方法中传递给它们。

来自http://storm.apache.org/documentation/configuration.html:

Storm代码库中的defaults.yaml中定义了每个配置的默认值。您可以通过在Nimbus和Supervisors的类路径中定义一个storm.yaml来覆盖这些配置。最后,您可以定义一个特定于拓扑的配置,在使用StormSubmitter时随拓扑一起提交该配置。但是,特定于拓扑的配置只能重写前缀为“拓扑”的configs。

希望这能让你开始。

 类似资料:
  • 我正在尝试使用Eclipse在Linux中运行Storm启动示例。我收到以下错误和函数从未被调用。 错误: 我的拓扑类: 我正在虚拟机环境中工作,所以不知道这是否是由于安装了Zookeeper。有什么想法吗?

  • 8台机器一直在使用。每一个都有22个核心和512 GB的RAM。但是,我们的代码运行得真的很慢。传输600万个数据需要10分钟才能完成。 60个文件中的10 MB在一秒钟内传输到HDFS。我们正在努力优化我们的代码,但很明显我们做了一些非常错误的事情。 对于蜂巢表,我们有64个桶。 在HDFS喷口;.setmaxextending(50000); 在蜂巢喷口选项;.WithTxNsperBatch

  • 我是阿帕奇Storm的新手。我已经在intellij中用java创建了一个storm项目,它成功地创建了一个本地集群,并将拓扑提交给它,然后在本地运行。我想在亚马逊EC2上运行这个Storm项目。我跟踪了https://github.com/nathanmarz/storm-deploy/wiki链接。跟随链接成功发射了2个主管,1个动物园管理员和1个灵光。现在我想在服务器上运行我的拓扑。这是我在

  • 我读了很多和Storm有关的网站。但我仍然无法将拓扑结构完美地映射到Storm集群中。 请帮助我理解这一点。 在Storm集群中有这样的术语 null null null 所有这些都要用Storm集群来映射。我已经在一个项目里工作了。所以我知道拓扑结构。

  • 我正在运行一个3节点的Storm集群。我们正在提交一个包含10个工作者的拓扑结构,以下是拓扑结构的详细信息 我们每天处理800万到1000万个数据。问题是topolgy只运行了2到3天,而我们在kafka spout中看到了一些失败的元组,没有处理任何消息。当提交新的topolgy时,它工作良好,但在2到3天后,我们又看到了同样的问题。有人能给我们一个解决方案吗。下面是我的storm配置

  • 我对Apache Storm的性能有一个问题,主要是从喷口出来的。 我有一个从kestrel队列发出项目的拓扑。我获取大约2000个项目,每次在喷注中调用时,我都会发出一个。 我正在使用1个spout任务和1个spout执行器运行。我已将设置为10。 为什么每次调用之间有这么大的时间间隔?outputCollector在发出一个新元组之前是否正在等待听到每个元组的反馈? 我正在运行Java8和st