2015-04-13 2 views
6

Рассмотрим кластер hadoop, где размер блока по умолчанию составляет 64 МБ в hdfs-site.xml. Однако позже команда решит изменить это на 128 МБ. Вот мои вопросы по вышеуказанному сценарию?Изменить размер блока существующих файлов в Hadoop

  1. Это изменение потребует перезагрузки кластера или оно будет автоматически занято, и все новые файлы будут иметь размер блока по умолчанию 128 МБ?
  2. Что произойдет с существующими файлами размером блока 64M? Будет ли изменение в конфигурации применяться к существующим файлам автоматически? Если это будет сделано автоматически, то когда это будет сделано - как только это будет сделано или когда кластер будет запущен? Если это не сделано автоматически, то как вручную сделать это изменение блока?

ответ

7

Будет ли это изменение требует перезапуска кластера или он будет рассмотрен автоматически, и все новые файлы будут иметь размер блока по умолчанию в 128MB

Перезапуск кластера будет требоваться для это изменение свойства вступит в силу.

Что произойдет с существующими файлами размером блока 64M? Будет ли изменение в конфигурации применяться к существующим файлам автоматически?

Существующие блоки не изменят размер своего блока.

Если это не сделано автоматически, то как это сделать вручную?

Для изменения имеющихся файлов вы можете использовать distcp. Он будет копировать файлы с новым размером блока. Однако вам придется вручную удалить старые файлы с более старым размером блока. Вот команда, которую вы можете использовать

hadoop distcp -Ddfs.block.size=XX /path/to/old/files /path/to/new/files/with/larger/block/sizes. 
0

Как уже упоминалось here для точки:

  1. Всякий раз, когда вы меняете конфигурацию, необходимо перезапустить NameNode и DataNode, для того, чтобы их изменить свое поведение.
  2. Нет, это не так. Он сохранит старый размер блока в старых файлах. Для того, чтобы он принял новое изменение блока, вам нужно переписать данные. Вы можете либо сделать хаоп fs -cp, либо distcp на ваших данных. Новая копия будет иметь новый размер блока, и вы можете удалить свои старые данные.

проверить ссылку для получения дополнительной информации.

0

На пункте 1 - На Hadoop 1.2.1, перезагрузка не требуется после изменения в dfs.block.size в HDFS-site.xml файл. Размер файла блока можно легко проверить, проверив страницу администрирования Hadoop по адресу http://namenode:50070/dfshealth.jsp

Обеспечьте изменение dfs.block.size на всех узлах данных.

Смежные вопросы