Изменить размер блока файла dfs

Моя карта в настоящее время неэффективна при анализе одного определенного набора файлов (всего 2 ТБ). Я хотел бы resize блоков файлов в Hadoop dfs (от 64 МБ до 128 МБ). Я не могу найти, как это сделать в документации только для одного набора файлов, а не для всего кластера.

Какая команда изменяет размер блока при загрузке? (Например, копирование с локального на dfs).

Я меняю свой ответ! Вам просто нужно установить конфигурационный параметр 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 для копирования между двумя streamами.

Для меня мне пришлось слегка изменить ответ 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

Мы можем resize блока, используя свойство dfs.block.size в файле hdfs-site.xml . Примечание. Мы должны указать размер в битах. Например: 134217728 бит = 128 МБ.

вы также можете resize своего блока в своих программах, как это

 Configuration conf = new Configuration() ; conf.set( "dfs.block.size", 128*1024*1024) ; 

В conf / folder мы можем изменить значение dfs.block.size в файле конфигурации hdfs-site.xml. В версии hadoop версии 1.0 размер по умолчанию составляет 64 МБ, а в версии 2.0 размер по умолчанию – 128 МБ.

  dfs.block.size 134217728 Block size  
  • Spark - загрузить CSV-файл как DataFrame?
  • Как создать / запустить эту простую программу Mahout без получения исключений?
  • Поведение параметра «mapred.min.split.size» в HDFS
  • Ошибка памяти в Hadoop
  • Как отключить регистрацию INFO в Spark?
  • Не удалось найти двоичный файл winutils в двоичном пути hadoop
  • Как работает отказоустойчивый процесс Hadoop Namenode?
  • Самый простой способ установить зависимости Python от узлов-исполнителей Spark?
  • Slave: ssh: подключение к подчиненному подчиненному порту 22: время ожидания подключения
  • hasoop No FileSystem для схемы: файл
  • Улей: лучший способ сделать инкрементные обновления на главной таблице
  • Давайте будем гением компьютера.