Ответ 1
Кажется, у hasoop fs нет параметров для этого.
Но hadoop fsck мог.
Вы можете попробовать это
$HADOOP_HOME/bin/hadoop fsck /path/to/file -files -blocks
В Hadoop fs как искать размер блока для определенного файла?
В первую очередь меня интересовала командная строка, например:
hadoop fs ... hdfs://fs1.data/...
Но похоже, что этого не существует. Есть ли решение Java?
Кажется, у hasoop fs нет параметров для этого.
Но hadoop fsck мог.
Вы можете попробовать это
$HADOOP_HOME/bin/hadoop fsck /path/to/file -files -blocks
Команды fsck
в других ответах выводят список блоков и позволяют увидеть количество блоков. Однако, чтобы увидеть фактический размер блока в байтах без лишних затрат, сделайте:
hadoop fs -stat %o /filename
Размер блока по умолчанию:
hdfs getconf -confKey dfs.blocksize
Единицы измерения размера блока не задокументированы в команде hadoop fs -stat
, однако, взглянув на исходную строку и документы по hadoop fs -stat
методу, мы видим, что она использует байты и не может сообщать о размерах блоков более 9 эксабайт.
Единицы для команды hdfs getconf
не могут быть байтами. Он возвращает любую строку, используемую для dfs.blocksize
в файле конфигурации. (Это видно в источнике для финальной функции и ее косвенного вызывающего)
Я думаю, что это должно быть выполнимо с помощью
hadoop fsck /filename -blocks
но я получаю Connection отказал