Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 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>