Почему формат ORC представлен в HDFS, если HDFS в первую очередь предназначена для объектного хранилища

Как мы все знаем, HDFS - это, по сути, система объектного хранения, в которой данные, однажды записанные в нее, не могут быть обновлены, но весь файл должен быть перезаписан целиком. Если это так, то в чем необходимость введения формата ORC в HDFS, который позволяет нам изменять / обновлять данные, хранящиеся в таблицах кустов, базовой системой хранения которых является HDFS.

Это делает HDFS блочным хранилищем, в котором данные могут быть обновлены / изменены, что противоречит всей структуре Hadoop.


person JKC    schedule 18.05.2021    source источник


Ответы (2)


ORC (ограниченная) поддержка транзакций ACID не меняет того факта, что HDFS доступна только для записи. См. https://orc.apache.org/docs/acid.html для объяснение. Обновления в ORC просто записываются в новые файлы в HDFS, поэтому быстрая запись отдельных транзакций приведет к появлению множества новых файлов, что приведет к серьезным проблемам с производительностью.

person Ben Watson    schedule 18.05.2021

Сначала мы должны познакомиться с историей ORC и столбчатых форматов данных в HDFS. Первоначально HDFS была разработана как файловая система, как следует из названия. Это означает, что люди хотели хранить файлы с возможностью масштабирования.

Первоначально ORC и Parquet не поддерживали обновления, потому что в долгосрочном решении для эффективного хранения не имеет смысла вносить изменения, такие как обновления. Данные должны быть неизменными и храниться очень эффективно. Как всегда, некоторые предприятия решили, что заказчик всегда прав, и внесли изменения. Они называют этот процесс созреванием на странице ORC. Я считаю это проблемой, которую не рекомендую своим клиентам.

Это делает HDFS блочным хранилищем, в котором данные могут быть обновлены / изменены, что противоречит всей структуре Hadoop.

Это не так, потому что фактическая реализация имеет дополнительные файлы вместо обновлений на месте.

person Istvan    schedule 19.05.2021
comment
Теперь обновления поддерживает только ORC, а не паркет. Правильно, @Istvan? - person JKC; 19.05.2021
comment
Да, это правильно. Паркет этого не поддерживает. issues.apache.org/jira/browse/HIVE-8123 - person Istvan; 19.05.2021