Отправка исключения обратно клиенту, брошенному приемником лотка

Я планирую использовать Flume с HTTPSource для загрузки данных в HDFS. Приемник будет настроен на сохранение данных в таблицу Hive/Hbase. Если есть какое-либо исключение/ошибка при записи данных в HDFS, можно ли их вернуть клиенту? HTTPSourceHandler генерирует исключение, если он не может проанализировать данные или не может отправить данные в канал памяти, но может ли исключение, созданное приемником, быть отправлено обратно клиенту?


person dev    schedule 27.03.2015    source источник


Ответы (1)


Как правило, источники работают как производители данных, а приемники — как потребители данных. Это означает, что приемники не будут помещать данные в канал, а источники не будут получать данные из канала. Тем не менее, я думаю, что вы можете создавать (никогда не проверял, просто выясняя, как это сделать) собственные источники и приемники, которые работают и как источники, и как приемники; в этом случае у вас может быть 2 канала, по одному для каждого направления, и выполнять обратную связь.

В любом случае, если вы ожидаете отправки ответов Http обо всех возможных ошибках, касающихся рабочего процесса от источника к приемнику, я бы посоветовал вам забыть об этом: как только данные были помещены в канал источником, нет гарантии, что такие данные будут немедленно обработаны приемником; обработка может занять 1 секунду или 1 минуту (канал, который ведет себя как очередь, может иметь много предыдущих данных). Я имею в виду, что вы не хотите реализовывать такую ​​синхронную связь, потому что новые данные, поступающие в агент Flume, должны будут долго ждать.

person frb    schedule 15.06.2015