Fork me on GitHub

Hadoop之命令行操作

在hadoop平台上可以通过如下的命令查看此平台的可用命令:

[root@hadoop-master001 sbin]# hdfs dfs 
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] [-v] [-x] <path> ...]
        [-cp [-f] [-p | -p[topax]] <src> ... <dst>]
        [-createSnapshot <snapshotDir> [<snapshotName>]]
        [-deleteSnapshot <snapshotDir> <snapshotName>]
        [-df [-h] [<path> ...]]
        [-du [-s] [-h] [-x] <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 [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<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> ...]
        [-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]

可以看到有很多的命令,但是我们hi需要掌握常用的命令即可:

1、hadoop fs -ls

查看hadoop分布式文件系统上的文件

[root@hadoop-master001 sbin]# hadoop fs -ls /
20/04/18 09:19:25 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where 
applicable

2、hadoop fs -put

上传文件到hadoop分布式文件系统上

[root@hadoop-master001 ~]# hadoop fs -put anaconda-ks.cfg /
20/04/18 09:22:42 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes 
where applicable

将文件 anaconda-ks.cfg上传到分布式文件系统的根目录下

3、hadoop fs -copyFromLocal

将本地文件拷贝到hadoop分布式系统上

[root@hadoop-master001 hadoopdata]# hadoop fs -copyFromLocal test1.txt / #将test1.txt文件拷贝到hadoop分布式文件系统上

4、hadoop fs -moveFromLocal

将本地文件移动到hadoop分布式系统上,此时本地文件不存在了

[root@hadoop-master001 hadoopdata]# hadoop fs -moveFromLocal test2.txt  / #将文件test2.txt移动到hadoop文件系统的根目录下

5、hadoop fs -cat

查看分布式文件系统上文件的内容

[root@hadoop-master001 hadoopdata]# hadoop fs -cat /test1.txt

6、hadoop fs -text

这与上面的命令一样,也是查看文件的内容

[root@hadoop-master001 hadoopdata]# hadoop fs -text /test1.txt

7、hadoop fs -get

拷贝文件从hadoop分布式文件系统到本地文件系统中

[root@hadoop-master001 hadoopdata]# hadoop fs -get /test2.txt . #将分布式文件系统上的test2.txt拷贝到本地文件系统的当前目录下

8、hadoop fs -mkdir

在分布式文件系统上创建文件夹

[root@hadoop-master001 hadoopdata]# hadoop fs -mkdir /temp #在hadoop分布式文件系统的根目录下创建temp目录

9、hadoop fs -mv

这个命令有两个作用,一个是移动,另一个是修改名称

[root@hadoop-master001 hadoopdata]# hadoop fs -mv /test1.txt /temp #将hadoop分布式文件系统的根目录下的test.txt文件移动到temp目录下

10、hadoop fs -getmerge

将多个文件进行合并,比如现在hadoop的分布式文件系统上的temp目录下有两个文件,然后对其进行合并

[root@hadoop-master001 hadoopdata]# hadoop fs -ls /temp
Found 2 items
-rw-r--r--   1 root supergroup          0 2020-04-18 09:27 /temp/test1.txt
-rw-r--r--   1 root supergroup          0 2020-04-18 09:50 /temp/test2.txt

[root@hadoop-master001 hadoopdata]# hadoop fs -getmerge /temp ./test3.txt

[root@hadoop-master001 hadoopdata]# ls
test1.txt  test2  test3.txt

将分布式文件系统的temp目录下的test.txt和test2.txt文件进行合并到本地文件系统的test3.txt文件中

11、hadoop fs -rm

 删除分布式文件系统上的文件

[root@hadoop-master001 hadoopdata]# hadoop fs -rm /temp/test1.txt

12、hadoop fs -rmdir

删除分布式文件系统上的文件夹

[root@hadoop-master001 hadoopdata]# hadoop fs -rmdir /temp

13、hadoop fs -rmr

强制删除分布式文件系统上文件夹

[root@hadoop-master001 hadoopdata]# hadoop fs -rmr /temp

14、hadoop fs -cp

分布式文件系统之间的复制文件

[root@hadoop-master001 hadoopdata]# hadoop fs -cp  /temp/test2.txt /

 

参考:http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.15.1/hadoop-project-dist/hadoop-common/FileSystemShell.html

posted @ 2020-04-18 10:39  iveBoy  阅读(1061)  评论(0)    收藏  举报
TOP