какая разница между "Hadoop с ФС" команды Shell и "файловая система HDFS ДПП" команды оболочки?
они должны быть равны?
но, почему "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 составлено Дженкинсом в понедельник 22 апреля 10:48: 26 PDT 2013
6 ответов:
Ниже приведены три команды, которые выглядят одинаково, но имеют незначительные различия
- hadoop fs {args}
- hadoop dfs {args}
- hdfs dfs {args}
hadoop fs <args>FS относится к общей файловой системе, которая может указывать на любые файловые системы, такие как local, HDFS и т. д. Таким образом, это можно использовать при работе с различными файловыми системами, такими как локальные FS, (S)FTP, S3 и другие
hadoop dfs <args>dfs очень специфичен для HDFS. будет работать для работы относится к HDFS. Это было устаревшим, и мы должны использовать hdfs dfs вместо.
hdfs dfs <args>так же, как 2nd i.e будет работать для всех операций, связанных с HDFS, и является рекомендуемой командой вместо hadoop dfs
ниже приведен список, классифицированный как
hdfsкоманды.namenode|secondarynamenode|datanode|dfs|dfsadmin|fsck|balancer|fetchdt|oiv|dfsgroupsтак что даже если вы используете hadoop ДФС, он будет выглядеть найти hdfs и делегировать эту команду hdfs dfs
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html
оболочка файловой системы (FS) включает в себя различные оболочечные команды, которые непосредственно взаимодействуют с распределенной файловой системой Hadoop (HDFS), а также другие файловые системы, которые поддерживает Hadoop, такие как локальные FS, WebHDFS, S3 FS и другие.
bin/hadoop fs
<args>все FS команды оболочки принимают URI пути в качестве аргументов. Формат URI-это scheme:/ / authority / path. Для HDFS схема является hdfs, а для локального FS схема является файлом. Схема и полномочия являются необязательными. Если не указано, то схема по умолчанию, указанная в конфигурации используемый. В HDFS файл или папку, например, /родителя/ребенка может быть указано как HDFS://namenodehost/родителя/ребенка или /родителя/ребенка (учитывая, что ваш конфигурация имеет значение указать на hdfs: / / namenodehost).
большинство команды в оболочке FS ведут себя как соответствующие команды Unix. Различия описываются с каждой из команд. Информация об ошибке отправлено в stderr и вывод в stdout.
Если используется HDFS,
hdfs dfs
синоним.
из того, что я могу сказать, нет никакой разницы между
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-это путь.
FS относится к общей файловой системе, которая может указывать на любые файловые системы, такие как local, HDFS и т. д. Но dfs очень специфично для HDFS. Поэтому, когда мы используем FS он может выполнять операции с локальной или распределенной файловой системой hadoop до места назначения . Но указание DFS операция относится к HDFS.
Ниже приведены выдержки из документации hadoop, которая описывает эти два как разные ракушки.
FS Shell Оболочка файловой системы (FS) вызывается bin/hadoop fs . Все команды оболочки FS принимают URI пути в качестве аргументов. Формат URI-это схема: / / autority / path. Для HDFS схема является hdfs, а для локальной файловой системы схема является файлом. Схема и полномочия являются необязательными. Если не указано, используется схема по умолчанию, указанная в конфигурации. В HDFS файл или папку, например, /родителя/ребенка может быть указано как HDFS://namenodehost/родителя/ребенка или просто как / parent/child (учитывая, что ваша конфигурация настроена на HDFS:/ / namenodehost). Большинство команд в оболочке FS ведут себя как соответствующие команды Unix.
DFShell Оболочка HDFS вызывается bin / hadoop dfs . Все команды файловой системы HDFS раковина принимает путь URI в качестве аргумента. Формат URI-это схема: / / autority / path. Для HDFS схема является hdfs, а для локальной файловой системы схема является файлом. Схема и полномочия являются необязательными. Если не указано, используется схема по умолчанию, указанная в конфигурации. В HDFS файл или папку, например, /родителя/ребенка может быть указано как HDFS://сетевой протокол:namenodeport/родителя/ребенка или /родителя/ребенка (учитывая, что конфигурация находится в точке с NameNode:namenodeport). Большинство команд в оболочке HDFS ведут себя как соответствующие команды Unix.
Итак, из вышесказанного можно сделать вывод, что все зависит от схемы настроить. При использовании этих двух команд с абсолютным URI, т. е. схема:/ / a / b поведение должно быть идентичным. Только его значение схемы по умолчанию настроено для файла и hdfs для fs и dfs соответственно, что является причиной разницы в поведении.
fs= файловой системыdfs= распределенная файловая система
fs= другие файловые системы + распределенные файловые системыFS относится к общей файловой системе, которая может указывать на любые файловые системы, такие как local, HDFS и т. д. А ДПП-это очень специфическая в HDFS. Поэтому, когда мы используем FS, он может выполнять операции с локальной или распределенной файловой системой hadoop до места назначения . Но указание операции DFS относится к HDFS.
все зависит от схема настройки. При использовании этих двух команд с абсолютным URI, т. е.
scheme://a/bповедение должно быть одинаковым. Только его значение схемы по умолчанию настроено дляfile://иhdfs://наfsиdfsсоответственно, что является причиной различия в поведении.

Comments