java - 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
解决方案
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。
推荐阅读
- python-3.x - 如何实现滑块小部件,matplotlib
- regex - 将一列中的值替换为另一列中的值
- python - 在 sqlalchemy 中使用 query.all() 方法时出错
- angular - 如何连接reducers逻辑
- mysql - 如何在MYSQL中获取每个月的最大日期
- c++ - 无法在 C++ 程序中包含 gstreamer
- c# - Unity - NuGet 包被自动删除
- session - 使用 django-channels 开发的聊天机器人,无法保存会话特定的聊天对话日志
- python - 使用 lmfit 时考虑数据错误
- python - 模型错误太小,可能是数据类型问题