Пустые события из Flume HTTPSource

Я пытаюсь настроить очень простой рабочий процесс в Flume, который делает это:

Данные JSON -> HTTPSource -> Канал памяти -> Регистратор

Я пытаюсь отправить эти данные:

[ { "строка" : "это тестовый пост" }]

Но вот что я получаю в регистраторе:

18/08/09 17:45:30 INFO приемник.LoggerSink: Событие: { заголовки: {} тело: }

Я могу сказать, что HTTPSource получает данные, потому что, если я отправляю недопустимое сообщение JSON, я получаю следующую ошибку:

Вызвано: java.lang.IllegalStateException: ожидалось BEGIN_ARRAY, но было BEGIN_OBJECT в строке 1, столбце 3

Вот моя конфигурация флейма:

# Agent ============================================================================
booking.sources = httpsource
booking.channels = channel
booking.sinks = hdfssink

# Source ============================================================================
booking.sources.httpsource.type = org.apache.flume.source.http.HTTPSource
booking.sources.httpsource.port = 8090
booking.sources.httpsource.bind = localhost


# Channel ============================================================================
booking.channels.channel.type = memory
booking.channels.channel.capacity = 50000
booking.channels.channel.transactionCapacity = 5000

booking.sources.httpsource.channels = channel
booking.sinks.hdfssink.channel = channel


# Sink ============================================================================
booking.sinks.hdfssink.type = logger

Я запускаю его с помощью следующей команды:

flume-ng agent --conf conf --conf-file conf/test.conf --name booking -Dflume.root.logger=DEBUG,console

А вот команда, которую я использую для публикации данных JSON:

curl --verbose --header "Content-Type: application/json" -k -d "@test.txt" -X POST http://localhost:8091

Кто-нибудь знает, куда могут идти данные? Или, может быть, какие-то дополнительные шаги для устранения неполадок?


person Steve Kaeser    schedule 09.08.2018    source источник


Ответы (1)


Это было просто я не читал достаточно документации. Формат json, необходимый для JSONHandler, — [{headers:{}, body: ""}], и мой тест не соответствовал этому.

Вот документация, которая помогла: http://flume.apache.org/FlumeUserGuide.html#jsonhandler

person Steve Kaeser    schedule 21.08.2018