/ / Как да използваме канала на Flume на Kafka, без да посочваме източник - apache-kafka, flume, flume-ng

Как да използвате Кафка Канал на Flume, без да посочите източник - apache-kafka, flume, flume-ng

Имам съществуваща тематика на Кафка и агент за копаенекойто чете от там и пише на HDFS. Искам да преконфигурирам агента си, за да се отдалечи от съществуващата настройка; Източник на Кафка, файл Канал към Потапяне на HDFS, за да се използва Канал Кафка.

Четох в документация за cloudera че е възможно да се постигне това само чрез използване на aКафка Канал и 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 Quickstart VM 2.6.3
  • Flume версия 1.5.2
  • Директорията HDFS съществува
  • ps -ef | grep flume връща само процес, след като съм добавил kafka-източник, но това не може да е правилно, защото това създава безкраен цикъл за всички съобщения, публикувани върху темата.

Възможно ли е да се използва само един канал на Кафка и HDFS Sink или трябва да използвам kafka-източник, но да променя някои други конфигурации, които ще попречат на безкрайния цикъл на съобщенията?

Kafka-source -> kafka-channel -> HDFS Sink - Това не ми изглежда правилно.

Отговори:

1 за отговор № 1

След като копаех малко, забелязах, че Ambari не е създал никакви файлови конфигурации за определен агент. test.sources = kafka-source, След като добавих това в конфигурацията на flume (чрез 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 създава flume config и стартира агент.


0 за отговор № 2

Това не отговаря директно на въпроса виFlume, но като цяло, тъй като вече използвате Apache Kafka този модел е най-добре решен с Kafka Connect (който е част от Apache Kafka). Има Kafka Connect HDFS конектор, който е лесен за използване, на това ръководство тук.