В чем разница между блоком и полосой? - PullRequest
1 голос
/ 19 января 2020

Из документов Hive:

Если в таблице или разделе содержится много небольших файлов RCFiles или OR C, то приведенная выше команда объединит их в более крупные файлы. В случае RCFile слияние происходит на уровне блока, тогда как для файлов OR C слияние происходит на уровне чередования, что позволяет избежать накладных расходов на распаковку и декодирование данных.

Мой вопрос: что такое разница между блоком и полосой?

1 Ответ

2 голосов
/ 19 января 2020

HDFS-блоки - самый низкий уровень, OR C - верхний уровень, эти уровни полностью независимы, полосы в OR C не заботятся о нижнем слое хранения.

Блоки HDFS:

  • Блоки HDFS - это самый низкий уровень, независимый от формата файла. HDFS разбивает файлы на блоки для оптимизации хранения.
  • Одна полоса может храниться в нескольких блоках, один блок может содержать несколько полос или часть полосы. HDFS разделит файл, не учитывая формат полосы или формат файла.
  • HDFS хранит метаданные каждого блока файлов, запись и чтение файлов прозрачны для верхнего уровня ИЛИ C, HDFS позаботится обо всех блоках.

ИЛИ C полосы:

  • верхний уровень хранения. Полоса ничего не знает о блоках.

  • ИЛИ C разделяется на уровне полосы. HDFS ничего не знает о структуре OR C и о том, как ее можно разделить для обработки. HDFS разбивает файлы на блоки для оптимизации хранения. Минимум одна полоса может быть обработана в одном контейнере. Вы можете настроить размер полосы в соответствии с размером блока.

Некоторые полезные ссылки. пожалуйста, прочитайте для лучшего понимания:

блоки HDFS

блок HDFS против полосы

ИЛИ C оптимизация

Большие ИЛИ C полосы и отступы блока в S3 - очень полезный блог

...