Hadoop fs поиск размера блока?

В Hadoop fs как искать размер блока для определенного файла?

В первую очередь меня интересовала командная строка, например:

hadoop fs ... hdfs://fs1.data/...

Но похоже, что этого не существует. Есть ли решение Java?

Ответ 1

Кажется, у hasoop fs нет параметров для этого.

Но hadoop fsck мог.

Вы можете попробовать это

$HADOOP_HOME/bin/hadoop fsck /path/to/file -files -blocks

Ответ 2

Команды fsck в других ответах выводят список блоков и позволяют увидеть количество блоков. Однако, чтобы увидеть фактический размер блока в байтах без лишних затрат, сделайте:

hadoop fs -stat %o /filename

Размер блока по умолчанию:

hdfs getconf -confKey dfs.blocksize

Подробная информация о единицах

Единицы измерения размера блока не задокументированы в команде hadoop fs -stat, однако, взглянув на исходную строку и документы по hadoop fs -stat методу, мы видим, что она использует байты и не может сообщать о размерах блоков более 9 эксабайт.

Единицы для команды hdfs getconf не могут быть байтами. Он возвращает любую строку, используемую для dfs.blocksize в файле конфигурации. (Это видно в источнике для финальной функции и ее косвенного вызывающего)

Ответ 3

Я думаю, что это должно быть выполнимо с помощью

hadoop fsck /filename -blocks

но я получаю Connection отказал