Hadoop FS поиск размера блока? - PullRequest
11 голосов
/ 07 декабря 2011

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

Меня прежде всего интересовала командная строка, что-то вроде:

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

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

Ответы [ 3 ]

32 голосов
/ 10 декабря 2014

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

hadoop fs -stat %o /filename

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

hdfs getconf -confKey dfs.blocksize

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

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

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

13 голосов
/ 07 декабря 2011

Кажется, у hadoop fs нет вариантов сделать это.

Но hadoop fsck мог.

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

$HADOOP_HOME/bin/hadoop fsck /path/to/file -files -blocks
1 голос
/ 07 декабря 2011

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

hadoop fsck /filename -blocks

, но я получаю Отказано в соединении

...