【问题标题】:Unexpected character in Kafka message with Flume带有 Flume 的 Kafka 消息中的意外字符
【发布时间】:2017-09-14 12:30:44
【问题描述】:

我有一个使用 Flume 和 Kafka 的摄取管道,使用 CSV 文件,在 Flume 拦截器中转换 JSON 中的事件并将其推送到 Kafka。

当我在发送到 Kafka 之前记录消息时,它是一个正常、有效的 JSON。但是当使用来自 Kafka 的相同消息时,我在尝试序列化它时遇到错误,说它不是有效的 JSON。

确实,我的消息开头有无法识别的字符:

例如 �

我认为它代表水槽在发布到 Kafka 时尝试对事件进行的空标题。但我似乎无法阻止这种情况发生。

有谁知道如何从正在发送的 Flume 事件中完全删除标头,或者更准确地说,删除那些字符?

【问题讨论】:

    标签: apache-kafka cloudera kafka-consumer-api flume flume-ng


    【解决方案1】:

    看起来像一个基本的字符编码问题,例如 kafka 在 Linux 上运行,而生产者在 Windows 机器上运行。您可能需要三重检查所有机器是否处理 utf-8 编码的消息。

    this post 应该是你的朋友。

    【讨论】:

    • 一开始我也这么认为,但我检查了三次,一切都是 UTF-8 编码的。我做了一些测试,这确实是flume在将事件发布到kafka频道时添加的一个字符......
    • 可惜了。您是否尝试过引入链接帖子中提到的(其他)值序列化器?你能发布生产者配置吗?另外,您使用的是哪个 kafka 版本?
    • 您解决了这个问题吗?我现在也面临同样的问题
    猜你喜欢
    • 2017-02-27
    • 1970-01-01
    • 2018-02-04
    • 2018-03-06
    • 2010-11-27
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    相关资源
    最近更新 更多