Размер блока Hadoop - это концепция хранения Hadoop. Каждый раз, когда вы сохраняете файл в Hadoop, он будет разделен на размеры блоков и в зависимости от коэффициента репликации и локальности данных будет распределен по кластеру.
Для деталей:
Когда вы загружаете файл в HDFS, он будет разделен на блоки. Каждый блок подобен отдельному файлу с максимальным размером, как описано размером блока.
Каждый блок будет содержать файл .meta вместе с ним для хранения метаданных блока в Hadoop.
Если файл очень маленький, то весь файл будет в одном блоке, а блок (файл хранения) будет иметь тот же размер, что и файл и метафайл.
Некоторые команды:
- Подключитесь к любому узлу данных в вашем кластере [если у вас есть доступ;)]. Затем перейдите в каталоги хранилища для этого узла, и вы увидите фактические блоки, хранящиеся на узле данных, как показано ниже.
(каталог соответствует моему кластеру - / data2 / dfs / dn /):
БЛОК Размер: 1 ГБ
cd / data / dfs / dn -> current -> Finalized -> subDir0 -> ( это Gold )
Блок использует только КБ памяти для небольших файлов или может быть, когда размер файла соответствует размеру моего блока + некоторые КБ
-rw-r - r-- 1 hdfs hdfs 91K 13 сентября 16:19 blk_1073781504
-rw-r - r-- 1 hdfs hdfs 19K 13 сентября 16:21 blk_1073781504_40923.meta
Если размер файла больше, то размер блока будет выглядеть примерно так:
-rw-r - r-- 1 hdfs hdfs 1.0G 31 августа 12:03 blk_1073753814
-rw-r - r-- 1 hdfs hdfs 8.1M 31 августа 12:04 blk_1073753814_12994.meta
Я надеюсь, что это объяснит материал для хранения блоков. Если вы хотите узнать подробности того, как ваши файлы хранятся в блоках, запустите
hdfs fsck -blocks -locations
Дайте мне знать, если я что-то упустил здесь.