Некоторые датоданы все еще показывают пул блоков, использованный после очистки HDFS

Версия Hadoop: 2.7.3 Датододы: 32 Размер блока: 512 м Репликация: 3

Я очистил все данные в HDFS с помощью команды hdfs dfs -rm -r /*

После очистки кластера HDFS некоторые датоданы все еще показывают Block pool usedхотя блоки нулевые.

Снимок экрана hdfs webui

Выход из hdfs fsck / как следует

Connecting to namenode via http://ip-10-0-2-7:50070/fsck?ugi=ubuntu&path=%2F
FSCK started by ubuntu (auth:SIMPLE) from /10.0.2.7 for path / at Tue Jul 18 04:34:19 UTC 2017
Status: HEALTHY
 Total size:    0 B
 Total dirs:    1
 Total files:   0
 Total symlinks:        0
 Total blocks (validated):  0
 Minimally replicated blocks:   0
 Over-replicated blocks:    0
 Under-replicated blocks:   0
 Mis-replicated blocks:     0
 Default replication factor:    3
 Average block replication: 0.0
 Corrupt blocks:        0
 Missing replicas:      0
 Number of data-nodes:      32
 Number of racks:       1
FSCK ended at Tue Jul 18 04:34:19 UTC 2017 in 1 milliseconds
The filesystem under path '/' is HEALTHY

Я знаю, что удаление блока - это асинхронный процесс, но датоды, имеющие Block Pool Used не установлен в 0, что занимает много времени, чтобы освободить блоки. Кто-нибудь может мне помочь выяснить, почему на этих серверах удаление блоков происходит медленно или какая-либо другая проблема, из-за которой используются блоки.

1 ответ

Есть несколько возможных причин для этого:

  1. Программное обеспечение кластера было недавно обновлено с использованием функции обновления HDFS, и обновление не было завершено. Во время непрерывного обновления при удалении файлов фактически не удаляются базовые файлы блоков в узле данных. Вместо этого файлы блоков сохраняются, поэтому, если оператор решит откатить обновление, данные кластера могут быть возвращены обратно в состояние перед обновлением. Как следствие, в течение скользящего окна обновления метрики DataNode, такие как "Используемый пул блоков", продолжают показывать занятое пространство. Простой способ проверить, выполняется ли непрерывное обновление, - перейти в веб-интерфейс NameNode. На вкладке "Обзор" будет отображено сообщение "Обновление начато". Чтобы завершить обновление, запустите hdfs dfsadmin -rollingUpgrade, После этого DataNodes начнет удалять файлы блоков (асинхронно).
  2. Пользователь кластера использовал снимки HDFS. Снимки поддерживают состояние пути к файловой системе в момент создания снимка. Чтобы поддержать это, узлам данных может потребоваться сохранить блоки для ранее удаленных файлов на случай, если пользователь решит прочитать старый снимок, содержащий данные. Бег hdfs fsck с -includeSnapshots Аргумент может показать, есть ли снимки в использовании.
  3. Из-за некоторой ошибки ввода-вывода (сбой диска, нарушение прав доступа к базовым файлам блоков) узлу DataNode не удается удалить файлы блоков. Это маловероятно, но если есть проблема, то в журналах DataNode будет показано больше информации.
Другие вопросы по тегам