Я знаю du -sh
в общих файловых системах Linux. Но как это сделать с HDFS?
Способ проверки размера каталога HDFS?
Ответ 1
До 0.20.203 и официально устарели в 2.6.0:
hadoop fs -dus [directory]
Так как 0.20.203 (мертвая ссылка) 1.0.4 и по-прежнему совместимы с помощью 2.6.0:
hdfs dfs -du [-s] [-h] URI [URI …]
Вы также можете запустить hadoop fs -help
для получения дополнительной информации и спецификаций.
Ответ 2
hadoop fs -du -s -h /path/to/dir
отображает размер каталога в читаемой форме.
Ответ 3
Расширение до Мэтта D и других ответов, команда может быть до Apache Hadoop 3.0.0
hadoop fs -du [-s] [-h] [-v] [-x] URI [URI ...]
Он отображает размеры файлов и каталогов, содержащихся в данном каталоге, или длину файла, если это просто файл.
Опции:
- Параметр -s приведет к отображению сводной сводки длин файлов, а не отдельных файлов. Без опции -s вычисление выполняется на 1 уровень ниже указанного пути.
- Параметр -h будет форматировать размеры файлов удобочитаемым способом (например, 64,0 м вместо 67108864)
- Опция -v отображает имена столбцов в виде строки заголовка.
- Опция -x option will исключает моментальные снимки из расчета результата. Без опции -x (по умолчанию) результат всегда рассчитывается по всем INodes, включая все снимки по заданному пути.
Du возвращает три столбца в следующем формате:
+-------------------------------------------------------------------+
| size | disk_space_consumed_with_all_replicas | full_path_name |
+-------------------------------------------------------------------+
Пример команды:
hadoop fs -du /user/hadoop/dir1 \
/user/hadoop/file1 \
hdfs://nn.example.com/user/hadoop/dir1
Код выхода: возвращает 0 в случае успеха и -1 в случае ошибки.
Ответ 4
С этим вы получите размер в GB
hdfs dfs -du PATHTODIRECTORY | awk '/^[0-9]+/ { print int($1/(1024**3)) " [GB]\t" $2 }'
Ответ 5
При попытке вычислить общее количество определенной группы файлов в каталоге опция -s
не работает (в Hadoop 2.7.1). Например:
Структура каталогов:
some_dir
├abc.txt
├count1.txt
├count2.txt
└def.txt
Предположим, что каждый файл имеет размер 1 КБ. Вы можете суммировать весь каталог с помощью:
hdfs dfs -du -s some_dir
4096 some_dir
Тем не менее, если я хочу, чтобы сумма всех файлов, содержащих "count", команда терпит неудачу.
hdfs dfs -du -s some_dir/count*
1024 some_dir/count1.txt
1024 some_dir/count2.txt
Чтобы обойти это, я обычно пропускаю вывод через awk.
hdfs dfs -du some_dir/count* | awk '{ total+=$1 } END { print total }'
2048
Ответ 6
Чтобы получить размер каталога hdfs dfs -du -s -h/$yourDirectoryName, можно использовать. hdfs dfsadmin -report можно использовать для просмотра отчета о быстром хранении кластерного уровня.
Ответ 7
% используемого пространства в кластере Hadoop sudo -u hdfs hadoop fs –df
Емкость под конкретную папку: sudo -u hdfs hadoop fs -du -h/user
Ответ 8
Hadoop версия 2.3.33:
hadoop fs -dus /path/to/dir | awk '{print $2/1024**3 " G"}'
Ответ 9
hdfs dfs -count <dir>
информация со страницы руководства:
-count [-q] [-h] [-v] [-t [<storage type>]] [-u] <path> ... :
Count the number of directories, files and bytes under the paths
that match the specified file pattern. The output columns are:
DIR_COUNT FILE_COUNT CONTENT_SIZE PATHNAME
or, with the -q option:
QUOTA REM_QUOTA SPACE_QUOTA REM_SPACE_QUOTA
DIR_COUNT FILE_COUNT CONTENT_SIZE PATHNAME
Ответ 10
Команда должна быть hadoop fs -du -s -h \dirPath
-
-du [-s] [-h]...: Показывать объем пространства в байтах, используемый файлами, соответствующими указанному шаблону файла.
-
-s: вместо того, чтобы показывать размер каждого отдельного файла, который соответствует pattern, показывает общий (итоговый) размер.
-
-h. Форматирует размер файлов в удобном для восприятия человеком формате, а не в количестве байтов. (Ex MB/GB/TB и т.д.)
Обратите внимание, что даже без опции -s это отображает только итоговые суммы одного уровня глубоко в каталог.
Выход находится в форме имя размера (полный путь)