我在storm的conf/storm.yaml中为类注册了一个自定义序列化程序,方法如下:
topology.kryo.register寄存器:
- custom.car:custom.mycarserializer
当我输入“bin/storm nimbus”启动storm时,抛出异常:
Exception in thread "main" expected '<document start>', but found BlockMappingStart
in 'reader', line 27, column 1:
topology.kryo.register:
^
at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentStart.produce(ParserImpl.java:225)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143)
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:108)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:424)
at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:121)
at backtype.storm.utils.Utils.readStormConfig(Utils.java:161)
at backtype.storm.config$read_storm_config.invoke(config.clj:101)
at backtype.storm.command.config_value$_main.invoke(config_value.clj:7)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at backtype.storm.command.config_value.main(Unknown Source)
Exception in thread "main" expected '<document start>', but found BlockMappingStart
in 'reader', line 27, column 1:
topology.kryo.register:
^
at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentStart.produce(ParserImpl.java:225)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143)
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:108)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:424)
at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:121)
at backtype.storm.utils.Utils.readStormConfig(Utils.java:161)
at backtype.storm.config$read_storm_config.invoke(config.clj:101)
at backtype.storm.command.config_value$_main.invoke(config_value.clj:7)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.AFn.applyTo(AFn.java:151)
at backtype.storm.command.config_value.main(Unknown Source)
如果没有这些注册,我添加的storm可以正常运行,所以我确信抛出异常是因为我在conf/storm.yaml中添加了注册,而不是conf/storm.yaml中的任何其他配置。我猜可能有一些格式错误,storm无法正确解析conf/storm.yaml。但是我检查了我添加的行,例如,1)在“-custom.car:custom.mycarserializer”之前没有制表符,而是空格;2) 在“-custom.car:”后面有一个空格。但这并不能解决问题。谁有类似的问题,你是怎么解决的?
我的storm版本是0.9.0.1,我在远程模式下运行它。
1条答案
按热度按时间x0fgdtte1#
当然,你的storm.yaml不是有效的yaml文件。正如@user2720864所说,发布你的storm.yaml文件。
同时,使用yaml lint服务验证yaml文件。