Yaml 在本地模式下运行storm拓扑时出错:
这是我在storm 0.9.4版本中尝试以本地模式实现storm拓扑时遇到的错误Yaml 在本地模式下运行storm拓扑时出错:,yaml,apache-storm,apache-zookeeper,Yaml,Apache Storm,Apache Zookeeper,这是我在storm 0.9.4版本中尝试以本地模式实现storm拓扑时遇到的错误 Caused by: expected '<document start>', but found BlockMappingStart in 'reader', line 24, column 1: storm.zookeeper.port: 2181 ^ at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentStart.p
Caused by: expected '<document start>', but found BlockMappingStart
in 'reader', line 24, column 1:
storm.zookeeper.port: 2181
^
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:141)
at backtype.storm.utils.Utils.readStormConfig(Utils.java:188)
at backtype.storm.utils.Utils.<clinit>(Utils.java:71)
... 100 more
您的yaml文件出现了一些问题。storm无法解析它。确保文件未损坏或配置正确 你可以 编辑: 尝试更改:
nimbus.host: localhost
到
及
到
及
到
请注意,指定值周围有双引号。
现在,如果您将其复制到任何YAML验证器中,它将显示已验证的YAML内容。但这只是storm.yaml文件中的解析错误。检查文件中是否有任何不需要的选项卡空间或空格。 尝试删除所有选项卡或空格并重写。那么它应该可以正常工作。您还可以在Yamlint或上验证yaml文件
还要检查~/.storm文件夹中的storm.yaml文件。这两个文件应该相同且正确。看起来像是snakeyaml的问题,该文件在Ruby中解析得很好。你用的是什么版本?我试着用Ruby的版本做了一些修改,我仍然不确定这个问题。我是否也需要更改snakeyaml的版本,还是需要更改以获得最新版本的Ruby?解决了这个问题。我在我的根目录中也有一些.storm文件夹,这是我在某种测试中创建的,保存在这里的storm.yaml文件引起了所有的麻烦。不,我已经验证了我的.yaml文件。这可能是Ruby的一个问题,正如某位同事所建议的那样comments@user3550694检查更新,看看是否有帮助。。这一定是配置文件被破坏的原因。嗨,我已经解决了这个问题。请参阅评论部分。我确实将storm.yaml文件复制到了验证器中,那里一切正常,没有任何与选项卡或空格相关的问题。
nimbus.host: localhost
nimbus.host: "localhost"
storm.local.dir: /var/stormtmp
storm.local.dir: "/var/stormtmp"
storm.zookeeper.servers:
- localhost
storm.zookeeper.servers:
- "localhost"