Командная строка Hadoop
Рассмотрим разницу между командами hadoop fs {args}, hadoop dfs {args} и hdfs dfs {args}.
Параметр fs относится к общей файловой системе, которая может указывать на любую файловую систему, например, локальную, HDFS и т.д. Таким образом, fs можно использовать при работе с различными файловыми системами, такими как Local FS, (S)FTP, S3 и другими.
Когда вы используете параметр dfs, вы напрямую указываете взаимодействие с HDFS. Так, если необходимо работать только с HDFS, используйте команду hdfs dfs. Если же требуется получить доступ/перенести данные между различными файловыми системами, используйте команду hadoop fs.
Чтобы взаимодействовать с оболочкой HDFS, пользователь должен обладать соответствующими правами на чтение/запись к директории(-ям) HDFS. Директории могут быть созданы пользователями, принадлежащими группам hadoop или hdfs. В демонстрационных целях в примере ниже используется пользователь hdfs.
Можно предоставить права root текущему пользователю, как показано ниже:
$ sudo -s
Затем нужно переключиться на пользователя hdfs:
$ su - hdfs
Теперь можно выполнять команды в оболочке HDFS.