HDFS常用的Shell命令(转载)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS常用的Shell命令(转载)相关的知识,希望对你有一定的参考价值。

原文地址: http://www.cuiweiyou.com/1405.html

0.shell

[email protected]:~# hadoop fs
Usage: hadoop fs [generic options]
  [-appendToFile <localsrc> ... <dst>]
  [-cat [-ignoreCrc] <src> ...]
  [-checksum <src> ...]
  [-chgrp [-R] GROUP PATH...]
  [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
  [-chown [-R] [OWNER][:[GROUP]] PATH...]
  [-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>]
  [-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
  [-count [-q] [-h] <path> ...]
  [-cp [-f] [-p | -p[topax]] <src> ... <dst>]
  [-createSnapshot <snapshotDir> [<snapshotName>]]
  [-deleteSnapshot <snapshotDir> <snapshotName>]
  [-df [-h] [<path> ...]]
  [-du [-s] [-h] <path> ...]
  [-expunge]
  [-find <path> ... <expression> ...]
  [-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
  [-getfacl [-R] <path>]
  [-getfattr [-R] {-n name | -d} [-e en] <path>]
  [-getmerge [-nl] <src> <localdst>]
  [-help [cmd ...]]
  [-ls [-d] [-h] [-R] [<path> ...]]
  [-mkdir [-p] <path> ...]
  [-moveFromLocal <localsrc> ... <dst>]
  [-moveToLocal <src> <localdst>]
  [-mv <src> ... <dst>]
  [-put [-f] [-p] [-l] <localsrc> ... <dst>]
  [-renameSnapshot <snapshotDir> <oldName> <newName>]
  [-rm [-f] [-r|-R] [-skipTrash] <src> ...]
  [-rmdir [--ignore-fail-on-non-empty] <dir> ...]
  [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
  [-setfattr {-n name [-v value] | -x name} <path>]
  [-setrep [-R] [-w] <rep> <path> ...]
  [-stat [format] <path> ...]
  [-tail [-f] <file>]
  [-test -[defsz] <path>]
  [-text [-ignoreCrc] <src> ...]
  [-touchz <path> ...]
  [-truncate [-w] <length> <path> ...]
  [-usage [cmd ...]]
 
Generic options supported are
-conf <configuration file>     specify an application configuration file
-D <property=value>            use value for given property
-fs <local|namenode:port>      specify a namenode
-jt <local|resourcemanager:port>    specify a ResourceManager
-files <comma separated list of files>    specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars>    specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives>    specify comma separated archives to be unarchived on the compute machines.
 
The general command line syntax is
bin/hadoop command [genericOptions] [commandOptions]
 
[email protected]:~#

 

1.打印文件列表 ls

(1)标准写法

hadoop fs -ls hdfs:/        #hdfs: 明确说明是HDFS系统路径


(2)简写

hadoop fs -ls /            #默认是HDFS系统下的根目录
(3)打印指定子目录

hadoop fs -ls /package/test/    #HDFS系统下某个目录

(5)最大单位打印

hadoop fs -ls -h /        #文件大小显示为最大单位

-rw-r–r– 2    root supergroup 4.6M 2015-05-07 10:43  /   dead_train.txt
权限   副本数 用户  用户组  大小  创建日期 创建时间 路径 文件名

(6)递归打印

hadoop fs -ls -R / #如果有子目录,则递归打印
(7)多个打印参数

hadoop fs -ls -h -R /        #递归打印并且最大单位打印文件

 

 


2.上传文件/目录 put、copyFromLocal

2.1 put 从主机本地系统到集群HDFS系统。

<1>上传新文件
    hdfs fs -put file:/root/test.txt hdfs:/     #上传本地test.txt文件到HDFS根目录,HDFS根目录须无同名文件,否则“File exists”
    hdfs fs -put test.txt /test2.txt            #上传并重命名文件。
    hdfs fs -put test1.txt test2.txt hdfs:/     #一次上传多个文件到HDFS路径。
<2>上传文件夹

    hdfs fs -put mypkg /newpkg          #上传并重命名了文件夹。
<3>覆盖上传

    hdfs fs -put -f /root/test.txt /      #如果HDFS目录中有同名文件会被覆盖

 

2.2copyFromLocal

<1>上传文件并重命名

    hadoop fs -copyFromLocal file:/test.txt hdfs:/test2.txt 

<2>覆盖上传

    hadoop fs -copyFromLocal -f test.txt /test.txt

3.下载文件/目录 get、copyToLocal

从集群HDFS到本地文件系统。

3.1 get

<1>拷贝文件到本地目录

    hadoop fs -get hdfs:/test.txt file:/root/

<2>拷贝文件并重命名。可以简写

    hadoop fs -get /test.txt /root/test.txt

3.2 copyToLocal

<1>拷贝文件到本地目录

    hadoop fs -copyToLocal hdfs:/test.txt file:/root/

<2>拷贝文件并重命名。可以简写

    hadoop fs -copyToLocal /test.txt /root/test.txt

4.拷贝文件/目录 cp

4.1 从本地到HDFS,同put

hadoop fs -cp file:/test.txt hdfs:/test2.txt

4.2 从HDFS到HDFS

hadoop fs -cp hdfs:/test.txt hdfs:/test2.txt 
hadoop fs -cp /test.txt /test2.txt

5.移动文件 mv

hadoop fs -mv hdfs:/test.txt hdfs:/dir/test.txt 
hadoop fs -mv /test.txt /dir/test.txt

6.删除文件/目录 rm

6.1 删除指定文件

hadoop fs -rm /a.txt

6.2 删除全部txt文件

hadoop fs -rm /*.txt

6.3 递归删除全部文件和目录

hadoop fs -rm -R /dir/

7.读取文件 cat

hadoop fs -cat /test.txt  #以字节码的形式读取

8.读取文件尾部 tail

hadoop fs -tail /test.txt  尾部1K字节

9.创建空文件 touchz

hadoop fs - touchz /newfile.txt

10.写入文件 appendToFile

hadoop fs - appendToFile file:/test.txt hdfs:/newfile.txt      #读取本地文件内容追加到HDFS文件

11.创建文件夹 mkdir

hadoop fs -mkdir /newdir /newdir2                #可以同时创建多个
hadoop fs -mkdir -p /newpkg/newpkg2/newpkg3             #同时创建父级目录

12.改变文件副本数 setrep

hadoop fs -setrep -R -w 2 /test.txt

-R 递归改变目录下所有文件的副本数。
-w 等待副本数调整完毕后返回。可理解为加了这个参数就是阻塞式的了。

技术分享

13.获取逻辑空间文件/目录大小 du

   hadoop fs - du /      #显示HDFS根目录中各文件和文件夹大小
    hadoop fs -du -h /      #以最大单位显示HDFS根目录中各文件和文件夹大小
    hadoop fs -du -s /      #仅显示HDFS根目录大小。即各文件和文件夹大小之和

14.获取HDFS目录的物理空间信息 count

hadoop fs -count -q /          #显示HDFS根目录在物理空间的信息

-q 查看全部信息,否则只显示后四项

技术分享





以上是关于HDFS常用的Shell命令(转载)的主要内容,如果未能解决你的问题,请参考以下文章

HDFS常用shell命令

HDFS的访问方式之HDFS shell的常用命令

大数据讲课笔记4.3 HDFS的shell操作

HDFS|Shell操作命令

HDFS的基本操作-常用shell命令

HDFS的基本操作-常用shell命令