Изменить размер блока файла dfs
Моя карта в настоящее время неэффективна при анализе одного определенного набора файлов (всего 2 ТБ). Я хотел бы изменить размер блоков файлов в Hadoop dfs (от 64 МБ до 128 МБ). Я не могу найти, как это сделать в документации только для одного набора файлов, а не для всего кластера.
Какая команда изменяет размер блока при загрузке? (Например, копирование с локального на dfs.)
Ответы
Ответ 1
Я меняю свой ответ! Вам просто нужно установить конфигурационный параметр fs.local.block.size
соответствующим образом, когда вы используете командную строку.
hadoop fs -D fs.local.block.size=134217728 -put local_name remote_location
Оригинальный ответ
Вы можете запрограммировать размер блока при создании файла с помощью API Hadoop. К сожалению, вы не можете сделать это в командной строке с помощью команды hadoop fs -put
. Чтобы сделать то, что вы хотите, вам придется написать свой собственный код, чтобы скопировать локальный файл в удаленное местоположение; это не сложно, просто откройте FileInputStream
для локального файла, создайте удаленный OutputStream
с помощью FileSystem.create
, а затем используйте что-то вроде IOUtils.copy
от Apache Commons IO для копирования между двумя потоками.
Ответ 2
Для меня мне пришлось слегка изменить ответ Bkkbrad, чтобы заставить его работать с моей настройкой, если кто-то еще найдет этот вопрос позже. У меня Hadoop 0.20 работает на Ubuntu 10.10:
hadoop fs -D dfs.block.size=134217728 -put local_name remote_location
Настройка для меня не fs.local.block.size
, а скорее dfs.block.size
Ответ 3
Мы можем изменить размер блока, используя свойство dfs.block.size в файле hdfs-site.xml.
Заметка:
Мы должны указать размер в битах.
Например:
134217728 бит = 128 МБ.
Ответ 4
вы также можете изменить размер своего блока в своих программах, например
Configuration conf = new Configuration() ;
conf.set( "dfs.block.size", 128*1024*1024) ;
Ответ 5
В conf/folder мы можем изменить значение dfs.block.size
в файле конфигурации hdfs-site.xml.
В версии hasoop версии 1.0 размер по умолчанию составляет 64 МБ, а в версии 2.0 размер по умолчанию - 128 МБ.
<property>
<name>dfs.block.size<name>
<value>134217728<value>
<description>Block size<description>
<property>