Форматы файлов Hadoop - PullRequest
       46

Форматы файлов Hadoop

0 голосов
/ 01 июля 2018

Мне нужно подумать, как записать мои данные в Hadoop.

Я использую Spark, я получил сообщение из темы Кафки, каждое сообщение в записи JSON.

У меня около 200B записей в день.

Поля данных могут быть изменены (не много, но могут измениться в будущем),

Мне нужна быстрая запись и быстрое чтение, небольшой размер на диске.

Что мне выбрать? Авро или Паркет?

Я также прочитал следующее https://community.hitachivantara.com/community/products-and-solutions/pentaho/blog/2017/11/07/hadoop-file-formats-its-not-just-csv-anymore И Avro v / s Parquet

Но все еще не знаю, что выбрать,

Есть предложения?

1 Ответ

0 голосов
/ 01 июля 2018

Если вы заботитесь о хранилище и запросах, оптимальные типы хранилища на порядок

  • ORC
  • Паркет
  • Avro
  • JSON
  • CSV / TSV (простой структурированный текст)
  • неструктурированный текст

Если вы ограничены в дисковом пространстве и хотели бы пожертвовать извлечением, лучше всего подойдет Snappy или Bzip2, а Bzip2 будет более сжатым.

Как правило, я вижу, как люди пишут данные JSON непосредственно в Hadoop, а затем пакетируют задание, чтобы ежедневно преобразовывать его, например, в более необязательный формат (например, Hadoop предпочитает очень большие файлы, а не множество крошечных)

Если вы заботитесь о скорости поиска, используйте HBase или какую-либо другую базу данных (Hive не является базой данных), но, по крайней мере, вам нужно будет сжимать потоковые данные в более крупные куски времени в соответствии с потребностями вашего бизнеса.

Avro изначально поддерживает эволюцию схемы, и если вы можете установить реестр схем Confluent вместе со своим существующим кластером Kafka, то вы можете просто использовать Kafka HDFS Connect, чтобы написать Parquet немедленно из Avro (или, думаю, JSON, если вы иметь поле схемы в сообщении) в HDFS вместе с таблицей Hive.

Другие опции включают Apache Nifi или Streamsets. Другими словами, не изобретайте колесо, пишущее код Spark, чтобы вытянуть Kafka в HDFS

...