Размер блока изменения файла DFS

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

То, которые управляют, изменяет размер блока, когда я загружаю? (Такие как копирование от локального до DFS.)

21
задан 4444 5 October 2016 в 18:50
поделиться

1 ответ

Я меняю свой ответ! Вам просто нужно правильно установить параметр конфигурации fs.local.block.size при использовании командной строки.

hadoop fs -D fs.local.block.size=134217728 -put local_name remote_location

Исходный ответ

Вы можете программно указать размер блока при создании файла с помощью Hadoop API. К сожалению, вы не можете сделать это в командной строке с помощью команды hadoop fs -put . Чтобы делать то, что вы хотите, вам придется написать свой собственный код для копирования локального файла в удаленное место; это несложно, просто откройте FileInputStream для локального файла, создайте удаленный OutputStream с помощью FileSystem.create , а затем используйте что-то вроде IOUtils. copy из Apache Commons IO для копирования между двумя потоками.

13
ответ дан 29 November 2019 в 20:06
поделиться
Другие вопросы по тегам:

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