Почему нет 'Hadoop с ФС -голова' командная оболочка?

Быстрый способ для проверки файлов в HDFS является использование хвост:

~$ hadoop fs -tail /path/to/file

Это отображение последнего килобайта данных в файл, что крайне полезно. Однако, глава противоположной команды не появляются, чтобы быть частью команды Collections оболочки. Я нахожу это очень удивительно.

Моя гипотеза заключается в том, что с HDFS-это построенные для очень быстрого потокового чтения очень больших файлов, есть какой-то доступ, ориентированных на проблему, которая влияет на "голове". Это делает меня колеблющимся, чтобы делать вещи, чтобы открыть головы. Есть у кого ответ?

Комментарии к вопросу (1)
Решение

Я бы сказал, что это's больше, чтобы сделать с КПД - головой можно легко воспроизвести путем конвейерной передачи выходных данных на базе Hadoop ФС -кошка через руководителя команды Linux.

hadoop fs -cat /path/to/file | head

Это эффективный как руководитель закрывает базовый поток после того, как нужное количество линий выходной был

Используя хвост, таким образом, будет значительно менее эффективным, как вы'd должны передавать весь файл (всю файловую систему HDFS блоков), чтобы найти окончательный x количество строк.

hadoop fs -cat /path/to/file | tail

Hadoop с ФС -хвостом команду, как вы обратите внимание, работает на последнем килобайте - Hadoop может эффективно найти последний блок и перейти к позиции окончательной килобайт, то поток на выходе. Трубопроводов через хвост может'т легко сделать это.

Комментарии (2)

Начиная с версии 3.1.0 теперь у нас есть это:

использование: Hadoop в ФС -начальник Ури

показывает первый килобайт файла в stdout.

Смотрите здесь.

Комментарии (0)
hdfs -dfs /path | head

это хороший способ, чтобы решить проблему.

Комментарии (1)

вы можете попробовать команду следующим образом

hadoop fs -cat /path | head -n 

где-н можно заменить количество записей для просмотра

Комментарии (0)

В Hadoop У2:

hdfs dfs -cat /file/path|head

В Hadoop В1 и В3:

hadoop fs -cat /file/path|head
Комментарии (0)