Apache Storm:IllegalArgumentException:字段 supervisor.scheduler.meta 必须是“java.util.Map”

Posted

技术标签:

【中文标题】Apache Storm:IllegalArgumentException:字段 supervisor.scheduler.meta 必须是“java.util.Map”【英文标题】:Apache Storm: IllegalArgumentException: field supervisor.scheduler.meta must be a 'java.util.Map' 【发布时间】:2016-02-05 12:19:25 【问题描述】:

我是 apachestorm 的新手,目前正在尝试 Pluggable Scheduler 来安排任务分配:哪个任务应该在哪个主管上运行。

我尝试在主管节点的storm.yaml文件中设置“supervisor.scheduler.meta”值,如下所示,当我尝试运行主管时,我最终得到了非法参数异常。我使用的是apachestorm 0.10.0。你能指导我解决这个问题吗?请在下面找到配置文件和错误日志

storm.yaml
-----------
supervisor.scheduler.meta: "special-supervisor"  


error-log
----
java.lang.IllegalArgumentException: field supervisor.scheduler.meta 'special-supervisor' must be a 'java.util.Map'
    at backtype.storm.config$fn$reify__880.validateField(config.clj:58)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)
    at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28)
    at backtype.storm.config$validate_configs_with_schemas.invoke(config.clj:118)
    at backtype.storm.config$read_storm_config.invoke(config.clj:123)
    at backtype.storm.command.config_value$_main.invoke(config_value.clj:22)
    at clojure.lang.AFn.applyToHelper(AFn.java:154)
    at clojure.lang.AFn.applyTo(AFn.java:144)

【问题讨论】:

supervisor.scheduler.meta 需要一个 java Map 实例——基本上是一个键值对。您可能希望以表示 yaml 中的 java Map 的格式表示“特殊主管”或预期值 【参考方案1】:

映射条目需要有键和值。例如:

supervisor.scheduler.meta:
  name: "special-supervisor"

其中“name”是键,“special-supervisor”是值。

【讨论】:

以上是关于Apache Storm:IllegalArgumentException:字段 supervisor.scheduler.meta 必须是“java.util.Map”的主要内容,如果未能解决你的问题,请参考以下文章

apache storm 的安装

storm 001

apache storm apache spark哪个更火

Apache - Storm

Apache Storm InvalidTopologyException

使用 Kafka Spout 的 Apache Storm 给出错误:IllegalStateException