Вопрос по – Формат хранения в HDFS

4

How Does HDFS store data?

Я хочу хранить огромные файлы в сжатом виде.

Например, у меня есть 1,5 ГБ файла с коэффициентом репликации по умолчанию 3.

Требуется (1,5) * 3 = 4,5 ГБ пространства.

Я считаю, что в настоящее время не происходит неявного сжатия данных.

Is there a technique to compress the file and store it in HDFS to save disk space ?

Ваш Ответ

4   ответа
6

EDIT

setCompressOutput(Job, boolean) setOutputCompressorClass(Job, Class)

Таким образом, Hadoop не имеет механизма для неявного сжатия файла, если я выполняю «hadoop fs -copyFromLocal ...». Нам придется явно сжать файл, а затем скопировать в Hdfs. Итак, вы хотите сказать, что метод сжатия, который нужно использовать, должен быть разделяемым; если это не так, если я хочу выполнить некоторые задания MR, то это может не дать правильных результатов? Итак, если я хочу использовать hdf только для хранения, я могу использовать любую технику сжатия. Однако, если мне нужно запустить задания MR, то лучше использовать сжатие, которое поддерживает разбиение. Это правильно? Uno
0

enter image description here

enter image description here

If DFS block size is 128 MB, for 4.5 GB storage (including replication factor of 3), you need 35.15 ( ~36 blocks) Only bzip2 file format is splittable. In other formats, all blocks of entire files are stored in same Datanode Have a look at algorithm types and class names and codecs @Chris White answer provides information on how to enable zipping while writing Map output
0

Error: User Rate Limit ExceededError: User Rate Limit Exceeded. Essentially that is a question of data splittability, as a file is devided into blocks which are elementary blocks for replication. Name node is responsible for keeping track of all those blocks belonging to one file. It is essential that block is autonomous when choosing compression - not all codecs are splittable. If the format + codec is not splittable that means that in order to decompress it it needs to be in one place which has big impact on parallelism in mapreduce. Essentially running in single slot. Hope that helps.

0

Why is it important to know these formats

Optimum read time Optimum write time Spliting or partitioning of files (so you don’t need to read the whole file, just a part of it) Schema adaption (allowing a field changes to a dataset) Compression support (without sacrificing these features)

Plain text storage (eg, CSV, TSV files, Delimited file etc)

Sequence Files

Avro

Parquet

ORC

Похожие вопросы