这是我在风暴0.9.4版本中尝试在本地模式下实现风暴拓扑时遇到的错误。
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
以下是/ conf文件夹中的storm.yaml文件:
---
java.library.path: /usr/local/lib
nimbus.childopts: "-Xmx512m"
nimbus.host: localhost
storm.local.dir: /var/stormtmp
storm.zookeeper.port: 2181
storm.zookeeper.servers:
- localhost
supervisor.childopts: "-Xmx256m"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
worker.childopts: "-Xmx768m"
答案 0 :(得分:0)
您的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"
请注意指定值周围的双引号。
sample config for storm
答案 1 :(得分:0)
现在,如果将其复制到任何YAML验证器中,它将显示已验证的yaml内容。但这只是storm.yaml文件中的解析错误。检查文件中是否有任何不需要的标签空间或空格 尝试删除所有选项卡或空格并重写。那它应该工作正常。您还可以在YAMLLint或http://instantyaml.appspot.com/上验证您的yaml文件。
还要检查〜/ .storm文件夹中的storm.yaml文件。两个文件应该相同且正确。