在本地模式下运行storm拓扑时出错:

时间:2015-04-16 11:32:00

标签: yaml apache-storm apache-zookeeper

这是我在风暴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"

2 个答案:

答案 0 :(得分:0)

您的yaml文件存在问题。暴风雨无法解析它。确保文件未损坏或正确配置。

你可以try this online validator

编辑

尝试改变:

    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文件。两个文件应该相同且正确。