STORM配置TOPOLOGY问题

最初的错误:

DynamicBrokersReader [ERROR] Node /brokers/ids/0 does not exist

设置:

BrokerHosts brokerHosts = new ZkHosts(zks, "/kafka/brokers");

然后就是如下错误:

2016-04-13T15:07:10.657+0800 b.s.util [ERROR] Async loop died!
java.lang.RuntimeException: java.lang.RuntimeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /kafka/brokers/topics/testtopic/partitions
    at storm.kafka.DynamicBrokersReader.getBrokerInfo(DynamicBrokersReader.java:81) ~[storm-kafka-0.9.6.jar:0.9.6]
    at storm.kafka.trident.ZkBrokerReader.<init>(ZkBrokerReader.java:42) ~[storm-kafka-0.9.6.jar:0.9.6]
    at storm.kafka.KafkaUtils.makeBrokerReader(KafkaUtils.java:57) ~[storm-kafka-0.9.6.jar:0.9.6]
    at storm.kafka.KafkaSpout.open(KafkaSpout.java:87) ~[storm-kafka-0.9.6.jar:0.9.6]
    at backtype.storm.daemon.executor$fn__3371$fn__3386.invoke(executor.clj:529) ~[storm-core-0.9.6.jar:0.9.6]
    at backtype.storm.util$async_loop$fn__460.invoke(util.clj:461) ~[storm-core-0.9.6.jar:0.9.6]
    at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
    at java.lang.Thread.run(Thread.java:662) [na:1.6.0_38]
Caused by: java.lang.RuntimeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /kafka/brokers/topics/testtopic/partitions
    at storm.kafka.DynamicBrokersReader.getNumPartitions(DynamicBrokersReader.java:94) ~[storm-kafka-0.9.6.jar:0.9.6]
    at storm.kafka.DynamicBrokersReader.getBrokerInfo(DynamicBrokersReader.java:65) ~[storm-kafka-0.9.6.jar:0.9.6]
    ... 7 common frames omitted

分析发现,在

DynamicBrokersReader类中虽然读取的是zkPath但是,前面的连接地址已经有了前缀地址,所以后面不用再加上

去掉了还是报最初的错误,再分析

在zkCli.sh进入zookeeper后检查,确实没有0,只有1,2,3这是在配置kafka时就定义的id了

在kafka/config/server.properties中配置broker.id = 0(其他机器顺序配置),重启,问题解决!

时间: 2024-11-10 01:11:57

STORM配置TOPOLOGY问题的相关文章

Storm WordCount Topology详解

1 package org.apache.storm.storm_core; 2 3 import java.util.Map; 4 5 import backtype.storm.task.OutputCollector; 6 import backtype.storm.task.TopologyContext; 7 import backtype.storm.topology.OutputFieldsDeclarer; 8 import backtype.storm.topology.bas

关于Storm 中Topology的并发度的理解

来自:http://blog.csdn.net/derekjiang/article/details/9040243 概念理解 原文中用了一张图来说明在一个storm cluster中,topology运行时的并发机制. 其实说白了,当一个topology在storm cluster中运行时,它的并发主要跟3个逻辑实体想过:worker,executor 和task 1. Worker 是运行在工作节点上面,被Supervisor守护进程创建的用来干活的进程.每个Worker对应于一个给定top

Twitter Storm中Topology的状态

Twitter Storm中Topology的状态 状态转换如下,Topology 的持久化状态包括: active, inactive, killed, rebalancing 四个状态. 代码上看到每种状态都可以转换成一些持久化 ( 写入到 zk 中的状态 ) 或者中间状态. Java代码 (defn state-transitions [nimbus storm-id status] {:active {:monitor (reassign-transition nimbus storm-

Storm 配置图文解析

Storm 配置图文解析 参考阅读:http://www.xiaofateng.com/?p=959 ============================== | sample-topology | | ------------------------ | Task 1 Task 2 Task 3 | | Worker Process 1 | | T1 T2 T3 | | +--------+ | | Spout => Bolt => Bolt | | +------+ | +----+

storm配置:如何解决worker进程内存过小的问题

问题导读1.如何设置storm内存?2.如果没有配置文件的情况下,该如何配置一些参数?3.通过哪个参数可以配置内存? Storm中真正干活的是各个worker,而worker由supervisor负责启动.在topology启动过程中我们会看到如下的启动日志: 这就是启动一个worker进程,也就是一个JVM进程.默认情况下,Storm启动worker进程时,JVM的最大内存是768M.但我在使用过程中,由于会在Bolt中加载大量数据,768M内存无法满足需求,会导致内存溢出程序崩溃.经过研究发

storm配置

配置 Storm 有大量配置项用于调整 nimbus.supervisors 和拓扑的行为.有些配置项是系统级的配置项,在拓扑中不能修改,另外一些配置项则是可以在拓扑中修改的. 每一个配置项都在 Storm 代码库的 defaults.yaml 中有一个默认值.可以通过在 Nimbus 和 Supervisors 的环境变量中定义一个 storm.yaml 来覆盖默认值.最后,在使用 StormSubmitter 提交拓扑时也可以定义基于具体拓扑的配置项.但是,基于拓扑的配置项仅仅能够覆盖那些以

storm 配置,呵呵。

配置项 配置说明 storm.zookeeper.servers ZooKeeper服务器列表 storm.zookeeper.port ZooKeeper连接端口 storm.local.dir storm使用的本地文件系统目录(必须存在并且storm进程可读写) storm.cluster.mode Storm集群运行模式([distributed|local]) storm.local.mode.zmq Local模式下是否使用ZeroMQ作消息系统,如果设置为false则使用java消息

storm之topology的启动

一个topology的启动包括了三个步骤 1)创建TopologyBuilder,设置输入源,输出源 2)获取config 3)提交topology(这里不考虑LocalCluster本地模式) 以storm.starter的ExclamationTopology为例: public static void main(String[] args)throws Exception { TopologyBuilder builder = new TopologyBuilder(); builder.

Storm配置运行

Storm核心概念 Nimbus:Storm集群主节点,负责资源分配和任务调度.我们提交任务和截止任务都是在Nimbus上操作的.一个Storm集群只有一个Nimbus节点. Supervisor:Storm集群工作节点,接受Nimbus分配任务,管理所有Worker. Worker:工作进程,每个工作进程中都有多个Task. Task:任务,每个Spout和Bolt都是一个任务,每个任务都是一个线程. Topology:计算拓扑,包含了应用程序的逻辑. Stream:消息流,关键抽象,是没有边