hadoopfs和常规unix命令有什么区别?

8ehkhllq  于 2021-05-27  发布在  Hadoop
关注(0)|答案(3)|浏览(382)

我是hadoop和hdfs的新手,我正在尝试了解为什么需要hadoop fs命令而不是仅仅使用unix命令等价物。它们似乎都能工作,我的第一个想法是hadoop命令直接与hdfs namenode接口,并将其传播到所有节点。但是,当我只使用unixshell命令时,情况似乎就是这样。我翻遍了网络,找不到一个简单的解释。非常感谢你的帮助。或者一个链接到一个不同的解释。

yxyvkwin

yxyvkwin1#

文件系统(fs)shell包括各种类似shell的命令,这些命令直接与hadoop分布式文件系统(hdfs)以及hadoop支持的其他文件系统(如local fs、hftp fs、s3fs等)交互。fs shell由以下程序调用:

bin/hadoop fs <args>

所有fs shell命令都将路径uri作为参数。uri格式为scheme://authority/path. 对于hdfs,方案是hdfs,对于本地fs,方案是file。方案和权限是可选的。如果未指定,则使用配置中指定的默认方案。hdfs文件或目录(如/parent/child)可以指定为
hdfs://namenodehost/parent/child
或者简单地说
/父/子
(假设您的配置设置为指向hdfs://namenodehost).
fs shell中的大多数命令的行为类似于相应的unix命令。
您可能找不到一些常规的shell命令,例如-head、-tail和-cat。相同命令的细微差别可以在这里找到。

ycggw6v2

ycggw6v22#

感谢tk421的评论,它让我认为这是通过nfs和它也不是直接的hdfs,它是一个mapr实现,所以它不同,我从mapr找到一些文档,解释。
当通过nfs或使用标准hadoop fs命令装入卷时,还可以使用标准unix命令为用户和组设置对文件或目录的读、写和执行权限。
https://mapr.com/docs/52/maproverview/c_volumes.html

4sup72z8

4sup72z83#

如果您在nfs上的hdfs上运行,那么您可以期望大多数简单的命令都能正常工作(例如 ls , cd , mkdir , mv , rm , chmod , chgrp , chown ). 唯一需要的 hadoop fs 或者 hdfs dfs 如果您正在使用扩展ACL或希望执行其他特定于hadoop的操作,则可以使用以下命令:
改变复制因子 hadoop fs -setrep 删除/user/username/.trash下的文件 hdfs dfs -expunge

相关问题