В чем разница между Hadoop fs и обычными командами Unix?

#hadoop #hdfs

#hadoop #hdfs

Вопрос:

Я новичок в Hadoop и HDFS, я пытаюсь понять, зачем нужны команды Hadoop fs по сравнению с простым использованием эквивалентов команд Unix. Похоже, что они обе работают, моей первой мыслью было, что команда Hadoop напрямую взаимодействует с HDFS namenode и распространяет ее на все узлы. Однако, похоже, это тот случай, когда я использую только команду оболочки Unix. Я перерыл интернет и не нашел простого объяснения. Помощь очень ценится. Или ссылку на объяснение разницы.

Комментарии:

1. В какой среде вы можете использовать команды UNIX в HDFS? HDFS NFS или HDFS Fuse? Команда UNIX может работать с базовыми файлами HDFS, но имена искажены, чтобы связать namenode и для репликации.

2. HDFS вместо NFS, которая упакована MAPR. Итак, я обрабатываю эти файлы на смонтированном томе в edgenode (не являющемся частью кластера), но на нем установлено программное обеспечение mapr. Когда я запускаю команды unix или команду hadoop -fs, они, похоже, дают одинаковые результаты. Мне интересно, настолько ли мал env (6) узлов, что происходит автоматическая репликация или что-то в этом роде, поэтому мне не нужна командная строка hadoop. [root@maprprod01 bin]# ./hadoop version Hadoop 2.7.0-mapr-1710

Ответ №1:

Если вы работаете в HDFS через NFS, то вы можете рассчитывать на самые простые команды, чтобы работать должным образом (например, ls , cd , mkdir , mv , rm , chmod , chgrp , chown ). Команда hadoop fs or hdfs dfs нужна только в том случае, если вы используете расширенные списки управления доступом или хотите выполнять другие специфические для Hadoop действия, такие как:

  • измените коэффициент репликации hadoop fs -setrep
  • удалите файлы из /user /USERNAME/.Мусор hdfs dfs -expunge

Ответ №2:

Благодаря комментаторам TK421 это заставило меня подумать, что это над NFS, и это также не прямой HDFS, это реализация MAPR, поэтому она отличается, я нашел некоторую документацию от mapr, которая объясняет.

Вы также можете установить разрешения на чтение, запись и выполнение для файла или каталога для пользователей и групп с помощью стандартных команд UNIX, когда этот том был смонтирован через NFS или с помощью стандартных команд hadoop fs.

https://mapr.com/docs/52/MapROverview/c_volumes.html

Ответ №3:

Оболочка файловой системы (FS) включает в себя различные команды, подобные оболочке, которые напрямую взаимодействуют с распределенной файловой системой Hadoop (HDFS), а также с другими файловыми системами, которые поддерживает Hadoop, такими как Local FS, HFTP FS, S3 FS и другими. Оболочка FS вызывается:

 bin/hadoop fs <args>
  

Все команды оболочки FS принимают URI пути в качестве аргументов. Формат URI — scheme://authority/path. Для HDFS схемой является hdfs, а для локальной FS схемой является file. Схема и полномочия необязательны. Если не указано, используется схема по умолчанию, указанная в конфигурации. Файл или каталог HDFS, такой как /parent / child, может быть указан как

hdfs://namenodehost/родительский / дочерний

или просто как

/родительский / дочерний

(учитывая, что ваша конфигурация настроена так, чтобы указывать на hdfs://namenodehost).

Большинство команд в оболочке FS ведут себя как соответствующие команды Unix.

Вы можете не найти некоторые обычные команды оболочки, такие как -head , но доступны -tail и -cat. Тонкие различия в одних и тех же командах можно найти для отдельных команд здесь.

Комментарии:

1. Спасибо за ваш ответ, я видел это в документах. Я предполагаю, что мой вопрос заключается в том, в чем разница, если я использую команды Hadoop -fs по сравнению с просто командами Unix. Будет ли использование стандартного CHMOD изменять все узлы в HDFS? Похоже, это работает именно так. Я вижу одинаковые результаты при использовании как команд Hadoop -fs, так и стандартных команд оболочки. Извините, если не ясно.

2. Я не уверен, что понимаю, о чем вы спрашиваете. Команды Hadoop fs, вероятно, были разработаны с учетом команд unix. Однако не все из них ведут себя подобным образом (особенно для дополнительных флагов, например, «hadoop fs -ls» ведет себя как команда «ls -al»). Как упоминалось ранее, команды hadoop fs являются подмножеством, и вы можете найти не все команды unix.