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

Что означает использование Non DFS?

Это то, что я недавно видел в веб-интерфейсе.

 Configured Capacity     :   232.5 GB
 DFS Used    :   112.44 GB
 Non DFS Used    :   119.46 GB
 DFS Remaining   :   613.88 MB
 DFS Used%   :   48.36 %
 DFS Remaining%  :   0.26 %

и я настолько смущен, что не-dfs Used занимает более половины емкости,

который, я думаю, означает, что половина хранилища хаоса теряется

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

И затем я скопировал один огромный текстовый файл (около 19 гигабайт) из локального в HDFS (успешно).

Теперь пользовательский интерфейс говорит

Configured Capacity  :   232.5 GB
DFS Used     :   38.52 GB
Non DFS Used     :   45.35 GB
DFS Remaining    :   148.62 GB
DFS Used%    :   16.57 %
DFS Remaining%   :   63.92 %

перед копированием, используемые DFS и Non DFS были равны 0.

Поскольку используемый DFS примерно вдвое превышает размер исходного текстового файла, и я настроил 2 копии,

Я предполагаю, что DFS Used состоит из двух копий оригинала и мета.

Но все же я понятия не имею, откуда пришел Non DFS, и почему это занимает столько же больше, чем используется DFS.

Что случилось? Я сделал ошибку?

4b9b3361

Ответ 1

"Не используется DFS" рассчитывается по следующей формуле:

Не используется DFS = конфигурированная емкость - оставшееся пространство - используется DFS

Это все еще запутанно, по крайней мере для меня.

Поскольку Конфигурированная емкость = общее дисковое пространство - зарезервированное пространство.

So Non DFS used = (Общее пространство диска - зарезервированное пространство) - оставшееся пространство - используется DFS

Возьмем пример. Предполагая, что у меня есть диск на 100 ГБ, я установил зарезервированное пространство (dfs.datanode.du.reserved) на 30 ГБ.

На диске, системе и других файлах, используемых до 40 ГБ, DFS используется 10 ГБ. Если вы запустите df -h , вы увидите, что доступное пространство составляет 50 ГБ для этого тома диска.

В веб-интерфейсе HDFS он отобразит

Не используется DFS = 100 ГБ (всего) - 30 ГБ (зарезервировано) - 10 ГБ (используется DFS) - 50 ГБ (оставшееся)            = 10 ГБ

Таким образом, это на самом деле означает, что вы изначально настроили резерв 30G для использования не dfs и 70 G для HDFS. Тем не менее, оказывается, что использование не dfs превышает резервирование 30G и съедает 10 ГБ пространства, которое должно принадлежать HDFS!

Термин "Non DFS used" действительно должен быть переименован в нечто вроде "Сколько сконфигурированных возможностей DFS занято использованием не dfs"

И нужно прекратить пытаться выяснить, почему использование не dfs настолько велико внутри хаопа.

Одна полезная команда lsof | grep delete, которая поможет вам идентифицировать этот открытый файл, который был удален. Иногда процессы Hadoop (например, куст, пряжа, mapred и hdfs) могут содержать ссылку на уже удаленные файлы. И эти ссылки будут занимать дисковое пространство.

Также du -hsx * | sort -rh | head -10 помогает отображать десятку самых больших папок.

Ответ 2

Не используемые DFS - это любые данные в файловой системе данных node (s), которые не находятся в dfs.data.dirs. Это будет включать в себя файлы журналов, вывод данных перетаскивания и локальные копии файлов данных (если вы поместите их на данные node). Используйте du или аналогичный инструмент, чтобы увидеть, что занимает пространство в вашей файловой системе.

Ответ 3

Правильное упрощенное определение: "Любые данные, которые не записаны HDFS в одной и той же файловой системе (ей) как dfs.data.dirs. Другими словами, если вы используете команды hdfs dfs для копирования данных, это заканчивается dfs.data.dirs, но тогда это считается" использованием DFS ", и если вы используете регулярную команду cp для копирования файлов в dfs.data.dirs, тогда она станет" не-DFS-использованием".

Ответ 4

Не-dfs будут некоторые файлы кеша, которые будут храниться менеджером node. Вы можете проверить путь под свойством yarn.nodemanager.local-dirs в файле yarn-site.xml

Вы можете обратиться к по умолчанию yarn-site.xml для деталей.