【发布时间】:2017-12-28 18:15:06
【问题描述】:
我有一个现有的 Kafka 主题和一个从那里读取并写入 HDFS 的水槽代理。我想重新配置我的水槽代理,使其远离现有设置; Kafka Source,文件 Channel 到 HDFS Sink,以使用 Kafka Channel。
我在cloudera documentation 中读到,可以通过仅使用 Kafka 通道和 HDFS 接收器(没有水槽源)来实现这一点。(除非我弄错了。)所以我试着创建此配置,但它不起作用。它甚至没有启动盒子上的水槽进程。
# 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 快速入门 VM 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 - 这对我来说似乎不对。
【问题讨论】:
-
flume 启动时出现什么错误?
-
机箱上没有启动水槽进程,因此没有任何水槽日志。通过 Ambari 启动 Flume 服务也不会产生任何错误消息。
-
您需要手动启动代理,以找出启动时遇到的水槽错误。
$ bin/flume-ng agent -n $agent_name -c conf -f conf/flume-conf.properties.template
标签: apache-kafka flume flume-ng