Serialization 在Storm';中注册自定义序列化程序时引发异常;亚马尔

Serialization 在Storm';中注册自定义序列化程序时引发异常;亚马尔,serialization,configuration,yaml,apache-storm,kryo,Serialization,Configuration,Yaml,Apache Storm,Kryo,我以以下方式在Storm的conf/Storm.yaml中注册了一个类的自定义序列化程序: topology.kryo.register: -custom.Car:custom.MyCarSerializer 当我通过键入“bin/storm nimbus”启动storm时,会抛出异常: 线程“main”中的异常应为“”,但发现BlockMappingStart 在“阅读器”第27行第1列: topology.kryo.register: ^ 位于org.yaml.snakeyaml.pars

我以以下方式在Storm的conf/Storm.yaml中注册了一个类的自定义序列化程序:

topology.kryo.register:
-custom.Car:custom.MyCarSerializer

当我通过键入“bin/storm nimbus”启动storm时,会抛出异常:


线程“main”中的异常应为“”,但发现BlockMappingStart 在“阅读器”第27行第1列: topology.kryo.register: ^ 位于org.yaml.snakeyaml.parser.ParserImpl$parserDocumentStart.product(ParserImpl.java:225) 位于org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) 位于org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) 位于org.yaml.snakeyaml.composer.composer.getSingleNode(composer.java:108) 位于org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) 位于org.yaml.snakeyaml.yaml.loadFromReader(yaml.java:481) 位于org.yaml.snakeyaml.yaml.load(yaml.java:424) 在backtype.storm.utils.utils.FindReadConfigFile(utils.java:121)中 位于backtype.storm.utils.utils.readStormConfig(utils.java:161) 在backtype.storm.config$read\u storm\u config.invoke(config.clj:101)中 在backtype.storm.command.config\u value$\u main.invoke(config\u value.clj:7)中 位于clojure.lang.AFn.applyToHelper(AFn.java:161) 在clojure.lang.AFn.applyTo(AFn.java:151) 位于backtype.storm.command.config_value.main(未知源) 线程“main”中应出现异常“”,但发现BlockMappingStart 在“阅读器”第27行第1列: topology.kryo.register: ^ 位于org.yaml.snakeyaml.parser.ParserImpl$parserDocumentStart.product(ParserImpl.java:225) 位于org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) 位于org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) 位于org.yaml.snakeyaml.composer.composer.getSingleNode(composer.java:108) 位于org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) 位于org.yaml.snakeyaml.yaml.loadFromReader(yaml.java:481) 位于org.yaml.snakeyaml.yaml.load(yaml.java:424) 在backtype.storm.utils.utils.FindReadConfigFile(utils.java:121)中 位于backtype.storm.utils.utils.readStormConfig(utils.java:161) 在backtype.storm.config$read\u storm\u config.invoke(config.clj:101)中 在backtype.storm.command.config\u value$\u main.invoke(config\u value.clj:7)中 位于clojure.lang.AFn.applyToHelper(AFn.java:161) 在clojure.lang.AFn.applyTo(AFn.java:151) 位于backtype.storm.command.config_value.main(未知源)
如果没有我添加的这些注册,Storm可以正常运行,因此我确信抛出异常是因为我在conf/Storm.yaml中添加了注册,而不是在conf/Storm.yaml中添加了任何其他配置。我猜可能有一些格式错误,Storm无法正确解析conf/Storm.yaml。但是我检查了我添加的行,例如,1)在“-custom.Car:custom.MyCarSerializer”之前没有制表符,而是空白;2) 在“-custom.Car:”后面有一个空格。但这并不能解决问题。谁有类似的问题?你是如何解决的


我的storm版本是0.9.0.1,我在远程模式下运行它。

当然,你的storm.yaml不是有效的yaml文件。正如@user2720864所说,发布您的storm.yaml文件。

同时,请使用服务验证您的YAML文件。

您可以共享您正在使用的完整YAML文件吗?问题是因为“topology.kryo.register:”必须以空白开头,我是通过使用验证我的conf/storm.YAML找到它的。这个网站很有帮助。谢谢。@user3159573您也可以选择答案!;)
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)