理论教育 学习HDFSshell命令的好方法

学习HDFSshell命令的好方法

时间:2023-06-14 理论教育 版权反馈
【摘要】:HDFS 的访问方式有两种,一种是HDFS shell,一种是Java API 方式。HDFS shell 命令应使用hadoop fs 或hdfs dfs。所有的HDFS shell 命令使用URI 路径作为参数,URI 格式是scheme://path,对于HDFS 文件系统,scheme 是hdfs;对于本地文件系统,scheme 是file。其中scheme 是可选的,如果未加指定,默认是HDFS 文件系统。一个HDFS 文件或目录比如/parent/path 可以表示成hdfs://parent/path,或者更简单的/parent/path。

学习HDFSshell命令的好方法

HDFS 的访问方式有两种,一种是HDFS shell,一种是Java API 方式。HDFS shell 命令应使用hadoop fs 或hdfs dfs(其中官网建议使用hdfs dfs 方式访问)。所有的HDFS shell 命令使用URI 路径作为参数,URI 格式是scheme://path,对于HDFS 文件系统,scheme 是hdfs;对于本地文件系统,scheme 是file。其中scheme 是可选的,如果未加指定,默认是HDFS 文件系统。一个HDFS 文件或目录比如/parent/path 可以表示成hdfs://parent/path,或者更简单的/parent/path。

HDFS shell 用法和Linux shell 很相似,可以通过help 命令的查看详细帮助,例查看ls 命令的帮助:hdfs dfs -help ls,下面将常用命令做以介绍:

1. 打印文件列表ls

hdfs dfs -ls hdfs:/

明确说明访问HDFS 系统路径,只访问根目录下的目录和文件,不会递归访问里面的子目录

hdfs dfs -ls /

默认情况下访问HDFS 系统的根目录

hdfs dfs -ls /package/test/

访问指定HDFS 系统下某个目录

hdfs dfs -ls -R /

递归访问HDFS 系统下所有目录和文件,包含子目录

2. 上传文件put

hdfs fs -put file:/root/test.txt /

上传本地test.txt 文件到HDFS 根目录,HDFS 根目录需无同名文件,否则报“File exists”

hdfs dfs -put /root/test.txt /

该命令同上

hdfs dfs -put /root/test.txt /test2.txt

上传并重命名为test2.txt

hdfs dfs -put test1.txt test2.txt hdfs:/

一次上传多个文件到HDFS 路径,采用的是相对路径

hdfs dfs -put /root/folder /

上传文件夹

hdfs dfs -put /root/ folder /new folder

上传并重命名文件夹。

hdfs dfs -put -f /root/test.txt /

上传本地test.txt 文件到HDFS 根目录,如果有同名文件,会覆盖掉

3. 下载文件get

hdfs dfs -get hdfs:/test.txt file:/root/

拷贝文件到本地目录

hdfs dfs -get /test.txt /root/test.txt

拷贝文件到本地目录并重命名

4. 拷贝文件cp(www.daowen.com)

hdfs dfs -cp file:/test.txt hdfs:/test2.txt

从本地拷贝到HDFS

hdfs dfs -cp hdfs:/test.txt hdfs:/test2.txt

从HDFS 拷贝到HDFS

hdfs dfs -cp /test.txt /test2.txt

从HDFS 拷贝到HDFS

5. 删除文件rm

hdfs dfs -rm /test2.txt

删除HDFS 中的test2.txt 文件

hdfs dfs -rm -R /root/

删除HDFS 中root 目录下的所有文件

6. 创建文件touchz

hdfs dfs - touchz /newfile.txt

HDFS 中创建新文件newfile.txt

7. 创建文件夹 mkdir

hdfs dfs -mkdir /newdir

HDFS 中创建文件夹newdir

hdfs dfs -mkdir -p / newdir/newdir1/newdir2

HDFS 中创建多级文件夹

8. 移动文件mv

hdfs dfs -mv /test1.txt /root

将HDFS 中的test1.txt 移动root 目录下

hdfs dfs -mv /test1.txt /test4.txt

达到类似重命名的效果

9. 写入文件 appendToFile

hadoop fs - appendToFile file:/test.txt hdfs:/newfile.txt

读取本地文件内容追加到HDFS 文件

10. 修改文件权限chmod

权限模式同Linux shell 命令中的模式

hdfs dfs -chmod -R 775 /tmp 将tmp 目录下所有文件的权限更改为775

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈