Какая разница между командами оболочки "hadoop fs" и командами оболочки hdfs dfs?
Являются ли они равными?
но почему команды "hadoop fs
" показывают hdfs files
, в то время как команды "hdfs dfs
" показывают локальные файлы?
вот информация о версии хауопа:
Hadoop 2.0.0-mr1-cdh4.2.1 Subversion git://ubuntu-slave07.jenkins.cloudera.com/var/lib/jenkins/workspace/CDH4.2.1-Packaging-MR1/build/cdh4/mr1/2.0.0-mr1-cdh4.2.1/source -r Скомпилировано jenkins в Пн Апр 22 10:48:26 PDT 2013
Ответы
Ответ 1
Ниже приведены три команды, которые отображаются одинаково, но имеют небольшие отличия
- hadoop fs {args}
- hasoop dfs {args}
-
hdfs dfs {args}
hadoop fs <args>
FS относится к общей файловой системе, которая может указывать на любые файловые системы, такие как локальные, HDFS и т.д. Таким образом, это можно использовать, когда вы имеете дело с различными файловыми системами, такими как Local FS, HFTP FS, S3 FS и другие
hadoop dfs <args>
dfs очень специфичен для HDFS. будет работать для работы с HDFS. Это было устарело, и мы должны использовать hdfs dfs.
hdfs dfs <args>
то же, что и 2-я, я буду работать для всех операций, связанных с HDFS, и является рекомендуемой командой вместо hadoop dfs
ниже - список, классифицированный как команды HDFS.
**#hdfs commands**
namenode|secondarynamenode|datanode|dfs|dfsadmin|fsck|balancer|fetchdt|oiv|dfsgroups
Итак, даже если вы используете Hadoop dfs, он будет искать hdfs и делегировать эту команду hdfs dfs
Ответ 2
Из того, что я могу сказать, нет разницы между hdfs dfs
и hadoop fs
. Это просто разные соглашения об именах, основанные на той версии Hadoop, которую вы используете. Например, примечания в 1.2.1 используют hdfs dfs
, а 0.19 использует hadoop fs
. Обратите внимание, что отдельные команды описаны дословно. Они используются одинаково.
Также обратите внимание, что обе команды могут ссылаться на разные файловые системы в зависимости от того, что вы указали (hdfs, file, s3 и т.д.). Если файловая система не указана, они возвращаются к умолчанию, указанному в вашей конфигурации.
Вы используете Hadoop 2.0.0, и он выглядит как (на основе документации 2.0.5), что в версиях Alpha используются hadoop fs
и установлен для использования HDFS в качестве схемы по умолчанию в вашей конфигурации. Команда hdfs dfs
может быть оставлена с ранее, и, поскольку она не указана в конфигурации, может быть просто по умолчанию для локальной файловой системы.
Поэтому я бы просто придерживался hadoop fs
и не слишком беспокоился, так как в документации они идентичны.
Ответ 3
fs относится к любой файловой системе, она может быть локальной или HDFS, но dfs относится только к файловой системе HDFS. Поэтому, если вам нужно выполнить доступ/передачу данных между разными файловыми системами, fs - это путь.
Ответ 4
FS относится к общей файловой системе, которая может указывать на любые файловые системы, такие как локальные, HDFS и т.д. Но dfs очень специфичен для HDFS. Поэтому, когда мы используем FS, он может выполнять операцию с/из локальной или распределенной файловой системы с распределенной файловой системой в пункт назначения. Но указание операции DFS относится к HDFS.
Ниже приведены выдержки из документации по суффиксу, которая описывает эти два как разные оболочки.
Оболочка FS
Оболочка FileSystem (FS) вызывается bin/hadoop fs. Все команды оболочки FS принимают URI пути в качестве аргументов. Формат URI - это схема://autority/path. Для HDFS схема hdfs, а для локальной файловой системы - файл. Схема и полномочия являются необязательными. Если не указано, используется схема по умолчанию, указанная в конфигурации. Файл или каталог HDFS, такие как /parent/child, могут быть указаны как hdfs://namenodehost/parent/child или просто как /parent/child (при условии, что ваша конфигурация задана как hdfs://namenodehost). Большинство команд в FS-оболочке ведут себя как соответствующие команды Unix.
DFShell
Оболочка HDFS вызывается bin/hadoop dfs. Все команды оболочки HDFS принимают URI пути в качестве аргументов. Формат URI - это схема://autority/path. Для HDFS схема hdfs, а для локальной файловой системы - файл. Схема и полномочия являются необязательными. Если не указано, используется схема по умолчанию, указанная в конфигурации. Файл HDFS или каталог, такой как /parent/child, можно указать как hdfs://namenode: namenodeport/parent/child или просто как /parent/child (при условии, что ваша конфигурация настроена на namenode: namenodeport). Большинство команд в оболочке HDFS ведут себя как соответствующие команды Unix.
Итак, из вышесказанного можно сделать вывод, что все зависит от схемы configure. При использовании этой двух команд с абсолютным URI, то есть схемой://a/b, поведение должно быть идентичным. Только его стандартное настроенное значение схемы для файлов и hdfs для fs и dfs соответственно, что является причиной различий в поведении.
Ответ 5
fs = файловая система
dfs = распределенная файловая система
fs = другие файловые системы + распределенные файловые системы
FS относится к общей файловой системе, которая может указывать на любые файловые системы, такие как локальные, HDFS и т.д. Но dfs очень специфичен для HDFS. Поэтому, когда мы используем FS, он может выполнять операцию с/из локальной или распределенной файловой системы с распределенной файловой системой в пункт назначения. Но указание операции DFS относится к HDFS.
Все зависит от схемы configure. При использовании этой двух команд с абсолютным URI, то есть схемой://a/b, поведение должно быть идентичным. Только его стандартное настроенное значение схемы для файлов и hdfs для fs и dfs соответственно, что является причиной различий в поведении.
Ответ 6
![введите описание изображения здесь]()
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html
Файловая система (FS) включает в себя различные команды, подобные оболочке, которые напрямую взаимодействуют с распределенной файловой системой Hadoop (HDFS), а также другие
файловые системы, поддерживаемые Hadoop, такие как Local FS, WebHDFS, S3 FS и другие.
bin/hadoop fs <args>
Все команды оболочки FS принимают URI пути в качестве аргументов. Формат URI - это схема://авторитет/путь. Для HDFS схема hdfs и
для локальной FS эта схема является файлом. Схема и полномочия являются необязательными. Если не указано, стандартная схема, указанная в конфигурации,
используемый. Файл или каталог HDFS, такие как /parent/child, можно указать как hdfs://namenodehost/parent/child или просто как /parent/child (учитывая, что ваш
для конфигурации установлено значение hdfs://namenodehost).
Большинство команд в FS-оболочке ведут себя как соответствующие команды Unix. Различия описываются с каждой из команд. Информация об ошибках
отправляется в stderr, и вывод отправляется на stdout.
Если используется HDFS,
hdfs dfs
является синонимом.