首页 > 解决方案 > storm-kafka-client:1.2.2 KafkaSpoutConfig 使用 Yaml

问题描述

我正在尝试通过 YAML 配置 KafkaSpout,但出现以下错误

线程“主”java.lang.IllegalArgumentException 中的异常:参数类型不匹配

下面是我的 YAML 文件中的一些内容

name: "SampleTopology"

components:
- id: "onlyValueRecordTranslator"
className: "org.apache.storm.kafka.spout.DefaultRecordTranslator"

- id: "spoutConfigBuilder"
  className: 
 "org.apache.storm.kafka.spout.KafkaSpoutConfig$Builder"
  constructorArgs:
  - "localhost:9092"
  - ["myKafkaTopic"]
  properties:
  - name: "firstPollOffsetStrategy"
    value: "LATEST"
  - name: "recordTranslator"
    ref: "onlyValueRecordTranslator"
 configMethods:
  - name: "setProp"
    args:
      - {
        "key.deserializer" : 
  "org.apache.kafka.common.serialization.StringDeserializer",
        "value.deserializer": 
  "org.apache.kafka.common.serialization.StringDeserializer"
      }


  - id: "spoutConfig"
  className: "org.apache.storm.kafka.spout.KafkaSpoutConfig"
  constructorArgs:
  - ref: "spoutConfigBuilder"

有人可以指出如何通过 YAML 使用 KafkaSpoutConfig 的任何示例吗?

我正在使用以下版本的风暴和卡夫卡

org.apache.storm:storm-core:1.2.2
org.apache.storm:storm-kafka-client:1.2.2
org.apache.storm', name: 'flux-core', version: '1.2.2

标签: javaapache-kafkayamlapache-storm

解决方案


YAML 看起来正确(假设损坏的缩进是复制粘贴错误,否则您需要修复它)。

您会受到https://github.com/apache/storm/pull/2575中修复的错误的影响。它只在 Storm 2.0.0 中修复,在 1.x 分支中没有修复。我看不出我们不能向后移植它的原因。

您想要反向移植的代码是这个文件https://github.com/apache/storm/pull/2575/files#diff-472112e23a03ec30ae9c55beab542631。随时在https://issues.apache.org/jira上为它打开一个问题。如果你想继续工作,你可以将 PR 提交到https://github.com/apache/storm/pull


推荐阅读