Что означает использование 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.
Что случилось? Я сделал ошибку?
Ответы
Ответ 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 для деталей.