3

У меня есть поток событий (мы могли бы называть их «сообщениями» или даже просто «данными»), исходящими от бухгалтера события с временным обновлением. Брокер события может быть Kafka или Amazon Kinesis или Microsoft Event Hubs, хотя предположим, что это Кафка.Как перенести поток событий на холодное хранение?

Моя цель - передать этот поток событий и положить его в холодное хранение; то есть хранить данные для будущего анализа через Hadoop/Spark. Это означает, что я хотел бы принять этот «чатный» поток событий и преобразовать его в «короткие» файлы в HDFS. В облачной среде я бы скорее использовал S3 или Azure Storage вместо HDFS.

Я также хотел бы, чтобы мое решение было экономически эффективным; например, используя форматы сериализации, такие как Avro/ORC, чтобы уменьшить стоимость дискового пространства. Я также напоминаю, что данное событие сохраняется в холодном хранилище (бонусные баллы за один раз и только один раз).

Мои основные вопросы:

  • Как люди решить эту проблему?
  • Есть ли компоненты, которые уже обрабатывают этот сценарий?
  • Нужно ли мне самостоятельно разработать решение?
  • В любом случае, являются ли они рекомендуемыми узорами?

ответ

3

Ну, мы используем kafka с camus для извлечения данных из kafka в HDFS. Camus поддерживает автоматическую сериализацию. Вы можете найти больше о camus и avro here.

1

Другой вариант - использование Flume с источником Kafka (или каналом Kafka) и раковиной HDFS. HDFS-раковина может быть настроена для рулона с определенными размерами или временем.