какая разница между "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


770   6  

6 ответов:

Ниже приведены три команды, которые выглядят одинаково, но имеют незначительные различия

  1. hadoop fs {args}
  2. hadoop dfs {args}
  3. 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

enter image description here

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

    Ничего не найдено.