Они должны быть равными?
но почему команды " hadoop fs
" показывают, hdfs files
а команды " hdfs dfs
" показывают локальные файлы?
вот информация о версии hadoop:
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
hdfs dfs
показать HDFS файлы тоже.Ответы:
Ниже приведены три команды, которые выглядят одинаково, но имеют незначительные различия.
FS относится к общей файловой системе, которая может указывать на любые файловые системы, такие как локальные, HDFS и т. Д. Таким образом, это можно использовать, когда вы имеете дело с различными файловыми системами, такими как Local FS, (S) FTP, S3 и другими.
dfs очень специфичен для HDFS. будет работать, если операция относится к HDFS. Это устарело, и вместо этого мы должны использовать hdfs dfs .
то же, что и 2nd, т.е. будет работать для всех операций, связанных с HDFS, и является рекомендуемой командой вместо То hadoop dfs
ниже приведен список, классифицированный как
hdfs
команды.Таким образом, даже если вы используете hadoop dfs , он будет искать hdfs и делегировать эту команду hdfs dfs
источник
hadoop fs
относится к какой-либо файловой системе, например, локальной или hdfs, как hadoop выбрать отображение содержимого корневого каталога HDFS, когда я это сделаюhadoop fs -ls /
? Кроме того, как я могу указать hadoop показывать содержимое моего локального корневого каталога при запускеhadoop fs -ls /
команды?file
схему в URI, переданных в качестве аргументаhadoop fs
командам (напримерhdoop fs -ls file:///
). Если ничего не сказано, по умолчанию используетсяhdfs
схема AFAIK (hdoop fs -ls /
==hadoop fs -ls hdfs:///
).hadoop fs -ls file:///
, если есть более традиционные способы листинга локальных файлов?https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html
Оболочка файловой системы (FS) включает в себя различные команды, подобные оболочке, которые напрямую взаимодействуют с распределенной файловой системой Hadoop (HDFS), а также с другими файловыми системами, поддерживаемыми Hadoop, такими как Local FS, WebHDFS, S3 FS и другие.
Все команды оболочки FS принимают URI пути в качестве аргументов. Формат URI - схема: // полномочия / путь. Для HDFS схема - hdfs, а для локальной FS - файловая. Схема и полномочия не являются обязательными. Если не указано, используется схема по умолчанию, указанная в конфигурации. Файл или каталог HDFS, например / parent / child, можно указать как hdfs: // namenodehost / parent / child или просто как / parent / child (при условии, что ваша конфигурация настроена так, чтобы указывать на hdfs: // namenodehost).
Большинство команд в оболочке FS ведут себя как соответствующие команды Unix. Различия описаны для каждой из команд. Информация об ошибке отправляется на stderr, а вывод отправляется на stdout.
Если используется HDFS,
это синоним.
источник
fs относится к любой файловой системе, она может быть локальной или HDFS, но dfs относится только к файловой системе HDFS. Поэтому, если вам нужно выполнить доступ / передачу данных между разными файловыми системами, используйте fs.
источник
Насколько я могу судить, разницы между
hdfs dfs
и нетhadoop fs
. Это просто разные соглашения об именах в зависимости от того, какую версию Hadoop вы используете. Например, в примечаниях 1.2.1 используется,hdfs dfs
а в 0.19 используетсяhadoop fs
. Обратите внимание, что отдельные команды описаны дословно. Они используются одинаково.Также обратите внимание, что обе команды могут относиться к разным файловым системам в зависимости от того, что вы указали (hdfs, file, s3 и т. Д.). Если файловая система не указана, они возвращаются к значениям по умолчанию, указанным в вашей конфигурации.
Вы используете Hadoop 2.0.0, и похоже ( на основе документации 2.0.5 ) альфа-версии используют
hadoop fs
и настроены на использование HDFS в качестве схемы по умолчанию в вашей конфигурации. Командаhdfs dfs
может быть оставлена ранее, и, поскольку она не указана в конфигурации, может просто использоваться по умолчанию для локальной файловой системы.Поэтому я бы просто придерживался
hadoop fs
и не слишком беспокоился, поскольку в документации они идентичны.источник
FS относится к общей файловой системе, которая может указывать на любые файловые системы, такие как локальная, HDFS и т. Д. Но dfs очень специфичен для HDFS. Таким образом, когда мы используем FS, он может выполнять операции с локальной файловой системой из / в или с распределенной файловой системой hadoop по назначению. Но указав DFS относится к HDFS.
Ниже приведены выдержки из документации hadoop, в которой эти две оболочки описаны как разные оболочки.
FS Shell файловой системы (FS) вызывается bin / hadoop fs. Все команды оболочки FS принимают URI пути в качестве аргументов. Формат URI - схема: // авторитет / путь. Для HDFS схема - hdfs, а для локальной файловой системы - файловая. Схема и полномочия не являются обязательными. Если не указано, используется схема по умолчанию, указанная в конфигурации. Файл или каталог HDFS, например / parent / child, можно указать как hdfs: // namenodehost / parent / child или просто как / parent / child (при условии, что ваша конфигурация настроена так, чтобы указывать на hdfs: // namenodehost). Большинство команд в оболочке FS ведут себя как соответствующие команды Unix.
DFShell Оболочка HDFS вызывается bin / hadoop dfs. Все команды оболочки HDFS принимают URI пути в качестве аргументов. Формат URI - схема: // авторитет / путь. Для HDFS схема - hdfs, а для локальной файловой системы - файловая. Схема и полномочия не являются обязательными. Если не указано, используется схема по умолчанию, указанная в конфигурации. Файл или каталог HDFS, например / parent / child, можно указать как hdfs: // namenode: namenodeport / parent / child или просто как / parent / child (при условии, что ваша конфигурация настроена так, чтобы указывать на namenode: namenodeport). Большинство команд в оболочке HDFS ведут себя как соответствующие команды Unix.
Итак, из вышесказанного можно сделать вывод, что все зависит от конфигурации схемы. При использовании этих двух команд с абсолютным URI, то есть scheme: // a / b, поведение должно быть идентичным. Только это значение схемы по умолчанию для файла и hdfs для fs и dfs соответственно, что является причиной различий в поведении.
источник
fs
= файловая системаdfs
= распределенная файловая системаfs
= другие файловые системы + распределенные файловые системыFS относится к общей файловой системе, которая может указывать на любые файловые системы, такие как локальная, HDFS и т. Д. Но dfs очень специфичен для HDFS. Таким образом, когда мы используем FS, он может выполнять операции с локальной файловой системой из / в или с распределенной файловой системой hadoop по назначению. Но указание работы DFS относится к HDFS.
Все зависит от конфигурации схемы. При использовании этих двух команд с абсолютным URI, т.е.
scheme://a/b
поведение должно быть идентичным. Только это значение схемы по умолчанию дляfile://
иhdfs://
дляfs
и,dfs
соответственно, является причиной различий в поведении.источник