gpt4 book ai didi

apache-kafka - 如何在不指定源的情况下使用 Flume 的 Kafka Channel

转载 作者:行者123 更新时间:2023-12-02 02:58:16 25 4
gpt4 key购买 nike

我有一个现有的 Kafka 主题和一个从那里读取并写入 HDFS 的水槽代理。我想重新配置我的 flume agent,这样它就会脱离现有的设置;一个 Kafka 源,文件 channel 到 HDFS 接收器,使用 Kafka channel 。

我在 cloudera documentation 中读到仅使用 Kafka Channel 和 HDFS sink(没有水槽源)就可以实现这一点。(除非我弄错了。)所以我尝试创建此配置,但它不起作用。它甚至没有在盒子上启动水槽进程。

# Test
test.channels = kafka-channel
test.sinks = hdfs-sink

test.channels.kafka-channel.type =
org.apache.flume.channel.kafka.KafkaChannel
test.channels.kafka-channel.kafka.bootstrap.servers = localhost:9092
test.channels.kafka-channel.kafka.topic = test
test.channels.kafka-channel.parseAsFlumeEvent = false

test.sinks.hdfs-sink.channel = kafka-channel
test.sinks.hdfs-sink.type = hdfs
test.sinks.hdfs-sink.hdfs.path = hdfs://localhost:8082/data/test/

我正在使用:

  • HDP 快速启动虚拟机 2.6.3
  • Flume 版本 1.5.2
  • HDFS 目录确实存在
  • ps -ef | grep flume 只有在我添加了 kafka 源后才返回一个进程,但这是不对的,因为这样做会为发布到该主题的任何消息创建一个无限循环。

是否可以仅使用 Kafka Channel 和 HDFS Sink,或者我是否需要使用 kafka-source 但更改一些其他配置以防止消息无限循环?

Kafka-source -> kafka-channel -> HDFS Sink - 这对我来说似乎不对。

最佳答案

在仔细研究之后,我注意到 Ambari 没有为指定的代理创建任何 flume conf 文件。如果我指定 test.sources = kafka-source,Ambari 似乎只会创建/更新水槽配置。一旦我将它添加到水槽配置中(通过 ambari),配置就在盒子上创建并且水槽代理成功启动。

最终的水槽配置如下所示:

test.sources=kafka-source
test.channels = kafka-channel
test.sinks = hdfs-sink

test.channels.kafka-channel.type = org.apache.flume.channel.kafka.KafkaChannel
test.channels.kafka-channel.kafka.bootstrap.servers = localhost:9092
test.channels.kafka-channel.kafka.topic = test
test.channels.kafka-channel.parseAsFlumeEvent = false

test.sinks.hdfs-sink.channel = kafka-channel
test.sinks.hdfs-sink.type = hdfs
test.sinks.hdfs-sink.hdfs.path = hdfs:///data/test

请注意,我没有在源上设置任何属性(这会导致我在问题中提到的无限循环问题),只需要提及它以便 Ambari 创建水槽配置并启动代理。

关于apache-kafka - 如何在不指定源的情况下使用 Flume 的 Kafka Channel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48012365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com