hdfs之Shell命令

HDFS基本操作

1、Shell命令行客户端

Hadoop提供了文件系统的shell命令行客户端,使用方法如下:

hadoop fs
文件系统shell包括与Hadoop分布式文件系统(HDFS) 以及Hadoop支持的其他文件系统(如本地FS, HFTP FS, S3 FS 等)直接交互的各种类似shell的命令。所有FS shell 命令都将路径URI作为参数。
URI格式为scheme://authority/path。对于HDFS,该scheme是hdfs,对于本地FS,该scheme是file. scheme 和authority是可选的。如果未指定,则使用配置中指定的默认方案。
对于HDFS,命令示例如下:
hadoop fs -ls hdfs://namenode: host/parent/child
hadoop fs -ls /parent/child fs. defaultFS中有配置

root@master ~]# hadoop fs -ls hdfs://hadoop102:8020/
Found 3 items
drwxr-xr-x   - root supergroup          0 2019-11-25 21:55 hdfs://master:9000/hello
drwx------   - root supergroup          0 2019-11-25 21:59 hdfs://master:9000/tmp
drwxr-xr-x   - root supergroup          0 2019-11-25 21:59 hdfs://master:9000/user
[root@master ~]# hadoop fs -ls /
Found 3 items
drwxr-xr-x   - root supergroup          0 2019-11-25 21:55 /hello
drwx------   - root supergroup          0 2019-11-25 21:59 /tmp
drwxr-xr-x   - root supergroup          0 2019-11-25 21:59 /user
[root@master ~]# hdfs dfs -ls /
Found 3 items
drwxr-xr-x   - root supergroup          0 2019-11-25 21:55 /hello
drwx------   - root supergroup          0 2019-11-25 21:59 /tmp
drwxr-xr-x   - root supergroup          0 2019-11-25 21:59 /user

对于本地文件系统,命令示例如下:
hadoop fs -Is file:///home/hadoop/

如果使用的文件系统是HDFS,则使用hdfs dfs也是可以的,此时

hadoop fs = hdfs dfs

2、Shell常用命令介绍

2.1 基本操作

  1. -ls

    使用方法:

     hadoop fs -ls [-h] [-R] <args>
    

    功能:显示文件、目录信息。
    示例:

    hadoop fs -ls /user/hadoop/file
    

    -R递归,路径及子路径文件目录显示;

    -h 人性化,。。。Kb/Mb.

  2. -cat

    使用方法:

    hadoop fs -cat [-ignorecrc] URI [URI ...]
    

    功能L显示文件内容到stdout

    示例:

    hadoop fs -cat /hadoop/hadoopfile
    
  3. -tail
    使用方法: hadoop fs -tail [-f] URI
    功能:将文件的最后千字节内容 显示到stdout.
    -f选项将在文件增长时输出附加数据。
    示例: hadoop fs -tail /hadoop/ hadoopfile

  4. -chgrp
    使用方法: hadoop fs -chgrp [-R] GROUP URI [URI …]
    功能:更改文件组的关联。用户必须是文件的所有者,否则是超级用户。
    -R将使改变在目录结构下递归进行。
    示例:

    hadoop fs -chgrp -R hadoop /input
    
  5. -chmod
    功能:改变文件的权限。使用R将使改变在目录结构下递归进行。
    示例: hadoop fs -chmod 666 /hadoop/ hadoopfile

    [root@localhost sbin]# hadoop fs -ls /
    Found 5 items
    -rw-r--r--   2 root supergroup         11 2019-12-21 11:25 /1.txt
    drwxr-xr-x   - root supergroup          0 2019-11-25 21:55 /hello
    -rw-r--r--   2 root supergroup       1858 2019-12-21 11:11 /initial-setup-ks.cfg
    drwx------   - root supergroup          0 2019-11-25 21:59 /tmp
    drwxr-xr-x   - root supergroup          0 2019-11-25 21:59 /user
    [root@localhost sbin]# hadoop fs -chmod 777 /1.txt
    [root@localhost sbin]# hadoop fs -ls /
    Found 5 items
    -rwxrwxrwx   2 root supergroup         11 2019-12-21 11:25 /1.txt
    drwxr-xr-x   - root supergroup          0 2019-11-25 21:55 /hello
    -rw-r--r--   2 root supergroup       1858 2019-12-21 11:11 /initial-setup-ks.cfg
    drwx------   - root supergroup          0 2019-11-25 21:59 /tmp
    drwxr-xr-x   - root supergroup          0 2019-11-25 21:59 /user
    
    
  6. -chown
    功能:改变文件的拥有者,使用-R将使改变在目录结构下递归进行。

    示例:

    hadoop fs -chown hadoop:hadoop /hadoop/hadoopfile
    
  7. -mkdir
    使用方法:

    hadoop fs -mkdir [-p] <paths>
    

    功能:在hdfs上创建目录,p表示会创建路径中的各级父目录。
    示例:

    hadoop fs -mkdir -p /user/hadoop/dir1
    
  8. -cp

    功能:从hdfs的一个路径拷贝hdfs的另一个路径

    示例:

    #复制并改名
    hadoop fs -cp /aaa/jdk.tar.gz /bbb/jdk.tar.gz.2
    #复制
    hadoop fs -cp /aaa/jdk.tar.gz /bbb/
    
  9. -mv

    功能:在hdfs目录中移动文件

    示例:

    hadoop fs -mv /aaa/jdk.tar.gz /
    
  10. -rm

    功能:删除指定的文件。只删除非空目录和文件。-r递归删除。

    示例:

    hadoop fs -rm -r /aaa/bbb/
    
  11. -df

    功能:统计文件系统的可用空间信息

    示例:

    hadoop fs -df -h /
    
  12. -du

    功能:显示目录中所有文件的大小,当只指定一个文件时,显示此文件的大小。

    示例:

    hadoop fs -du /user/hadoop/dir1
    
  13. -setrep

    功能:改变一个文件的副本系数。-R 选项用于递归改变目录下所有文件的副本系数。

    示例:

    hadoop fs -setrep -w 3 -R /user/hadoop/dir1
    

2.2 上传

  1. -put
    使用方法:

    hadoop fs -put [-f] [-p] [ -|<localsre1> .. ]. <dst>
    

    功能:将单个src或多个srcs从本地文件系统复制到目标文件系统。
    保留访间和修改时间,所有权和权限。
    -f: 覆盖目的地(如果已经存在)
    示例: hadoop fs -put -f localfilel localfile2 /user/hadoop/ hadoopdir

    hadoop fs -put /root/initial-setup-ks.cfg /
    hadoop fs -ls -h /
    Found 4 items
    drwxr-xr-x   - root supergroup          0 2019-11-25 21:55 /hello
    -rw-r--r--   2 root supergroup      1.8 K 2019-12-21 11:11 /initial-setup-ks.cfg
    drwx------   - root supergroup          0 2019-11-25 21:59 /tmp
    drwxr-xr-x   - root supergroup          0 2019-11-25 21:59 /user
    
  2. -copyFromLocal

    使用方法:hadoop fs -copyFromLocal URI

    功能:从本地文件系统中拷贝文件到hdfs路径去

    示例:

    hadoop fs -copyFromLocal /root/1.txt /
    
  3. -moveFromLocal:从本地剪切粘贴到HDFS

    hadoop fs -moveFromLocal input/ /
    
  4. -appendToFile
    使用方法: hadoop fs -appendToFile …
    功能:追加一个文件到已经存在的文件末尾

    示例:hadoop fs -appendToFile localfile /hadoop/hadoopfile

    [root@master test]# echo 11111111 1.txt
    [root@master test]# echo 2 > 2.txt
    root@master test]# hadoop fs -put 1.txt /
    [root@master test]# hadoop fs -ls  /
    Found 5 items
    -rw-r--r--   2 root supergroup          9 2019-12-21 11:23 /1.txt
    drwxr-xr-x   - root supergroup          0 2019-11-25 21:55 /hello
    -rw-r--r--   2 root supergroup       1858 2019-12-21 11:11 /initial-setup-ks.cfg
    drwx------   - root supergroup          0 2019-11-25 21:59 /tmp
    drwxr-xr-x   - root supergroup          0 2019-11-25 21:59 /user
    [root@master test]# hadoop fs -cat /1.txt
    11111111
    [root@master test]# hadoop fs -appendToFile 2.txt /1.txt
    [root@master test]# hadoop fs -cat /1.txt
    11111111
    2
    

2.3 下载

  1. -copyToLocal

    功能:从hdfs拷贝到本地

    示例:

    hadoop fs -copyToLocal /aaa/jdk.tar.gz /home/hadoop/
    
  2. -get

    使用方法:

     hadoop fs -get [-ignorecrc] [-erc] [-p] [-f] <src> <localdst>
    

    -ignoreere:跳过对下载文件的CRC检查。
    -crc:为下载的文件写CRC校验和。
    功能:将文件复制到本地文件系统。
    示例: hadoop fs -get hdfs://host : port/user/hadoop/file localfile

    [root@master ~]# mkdir test/
    [root@master ~]# cd test/
    [root@master test]# hadoop fs -get /initial-setup-ks.cfg ./ 
    [root@master test]# ls
    initial-setup-ks.cfg
    
  3. -getmerge

    功能:合并下载多个文件

    示例:比如hdfs的目录/aaa/下有多个文件:log.1,log.2,log.3…

    hadoop fs -getmerge /aaa/log.* ./log.sum
    
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MelodyYN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值