HDFS常用命令总结

在HDFS中所有的Hadoop命令均由bin/hadoop脚本引出,不指定参数运行Hadoop脚本会打印出所有命令的描述。这篇博文总结一下常用的HDFS命令的操作。


一、version命令

version命令可以打印Hadoop版本的详细信息。

$ hadoop version

二、dfsadmin命令

dfsadmin命令可以查看集群存储空间使用情况和各节点存储空间使用情况。

# hadoop dfsadmin -report

三、jar命令

jar命令是运行jar包文件命令。用户可以把他们的MapReduce代码捆绑到jar文件中,使用jar命令使程序运行起来。

hadoop jar <jar> [mainClass]

  • <jar>:jar包
  • [mainClass]:可选选项,指定运行主类

eg:使用"hadoop jar"命令在Hadoop集群中运行WordCount.jar程序,示例如下:

        # hadoop jar WordCount.jar

四、fs命令

fs参数是运行通用文件系统参数,在Hadoop后面跟上fs参数,表示是对HDFS中的文件进行操作。

hadoop fs [GENERIC_OPTIONS] [COMMAND_OPTIONS]

  • GENERIC_OPTIONS:通用选项
  • COMMAND_OPTIONS:命令选项

fs常用的基本选项如下:

1. mkdir

mkdir命令可以在HDFS中创建新目录,但它只能创建一级目录。创建多级目录上一级目录必须先存在,或是使用-p参数。

hadoop fs -mkdir <paths>

eg1:使用mkdir命令在HDFS中分别在input目录下创建一个file2目录、在output目录下也创建一个file2目录

          hadoop fs -mkdir /input/file2 /output/file2

eg2:使用mkdir命令在HDFS中创建一个多级目录/file/file1/file2/file3

          hadoop fs -mkdir -p /file/file1/file2/file3

2. touchz

touchz命令可以在HDFS中创建一个0字节的空文件。

hadoop fs -touchz <hdfs:newFile>

3. du & dus & ls & lsr

du命令是显示文件或文件夹属性的命令,可以显示(多个)指定文件、(多个)指定目录中所有文件的大小

dus命令可以显示指定(多个)文件目录的大小

ls命令可以在HDFS中显示指定文件的详细内容。如果是目录,则返回它直接子文件的列表。详细内容包括:权限、用户、文件所在组、文件大小、创建日期和路径等信息。

lsr命令是ls -R简写,是用来递归显示HDFS中指定目录下的所有子文件的详细信息

hadoop fs -du <hdfs:pathDirectory>

hadoop fs -dus <hdfs:pathDirectory>

hadoop fs -ls <hdfs:pathDirectory>

hadoop fs -lsr <hdfs:pathDirectory>

4. cat

cat命令可以在HDFS中查看指定文件或指定文件夹下所有文件内容。

hadoop fs -cat <hdfs:pathfile>

eg:查看HDFS中input目录下所有文件内容

        hadoop fs -cat /input/*

注:/input/*中的*表示input目录下的所有文件,/input/part*中的*指的是input目录下所有以part开始的文件。

5. put & get & getmerge

put命令可以从本地文件系统中复制单个或多个源路径到目标文件系统。HDFS中接收文件的目录必须事先存在

get命令从HDFS中复制指定文件、指定多个文件或指定目录下所有文件,到本地文件目录。在执行get之前,本地文件目录必须事先存在,get是一种常用的下载命令。

getmerge命令将HDFS中指定目录下的所有文件加载到本地中。如果文件名不存在将在本地新创建文件,如果文件名存在,则覆盖文件内所有内容。

hadoop fs -put <local:pathFile> [local:pathFile] <hdfs:pathDirectory>

hadoop fs -get <hdfs:pathFile> <local:pathDirectory>

hadoop fs -getmerge <hdfs:pathDirectory> <hdfs:pathFile>

eg1:从本地上传city_data文件和monitor_data文件到HDFS的test目录中

          hadoop fs -put city_data monitor_data /test

eg2:在HDFS中复制input目录下的word_count文件到本地file目录中

          hadoop fs -get /input/word_count ~/file

6. copyFromLocal & copyToLocal

二者和put/get命令很像,但是copyFromLocal是将本地文件上传到HDFS中(源地址必须是本地文件地址),copyToLocal是将HDFS中的文件下载到本地(源路径只能是一个本地文件,get的源路径可能是多个文件,也可能是标准输入)。

hadoop fs -copyFromLocal <local:pathFile> <hdfs:pathDirectory>

hadoop fs -copyToLocal <hdfs:pathFile> <local:pathDirectory>

7. cp

cp(copy)命令可以将HDFS中的指定文件复制到HDFS中目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录

hadoop fs -cp <hdfs:pathFile> <hdfs:pathDirectory>

8. mv & rm & rmr

mv命令可以在HDFS中将文件从源路径移动到目标路径,这个命令允许有多个源路径,此时目标路径必须是一个目录。

rm命令用于删除一个指定的文件或多个指定的文件的命令,加上“-r”参数可以删除指定目录。

rmr命令等价于rm -r命令,可以删除目录或递归删除子文件,如果使用-rmr命令删除一个目录时,不管目录下是否有其他文件,均将一并删除。

hadoop fs -mv <hdfs:sourcepath> [hdfs:sourcepath...] <hdfs:targetpath>

hadoop fs -rm <hdfs:pathFile> [hdfs:pathFile]

hadoop fs -rmr <hdfs:pathDirectory> [hdfs:pathDirectory]

eg1:将HDFS中的/input/major文件移动到/file/file1/file2中

         hadoop fs -mv /input/major /file/file1/file2

eg2:hadoop fs -rm /test/city_data /test/monitor_data

eg3:hadoop fs -rmr /test /file

9. tail

tail命令可以将文件尾部1KB的内容输出到标准输出。并且tail命令支持“-f”选项,加上“-f”选项表示实时显示文件内容。

hadoop fs -tail [-f] <hdfs:pathFile>

10. text

text命令可以将HDFS中的源文件以文本格式输出。

hadoop fs -text <hdfs:pathFile>

11. expunge

expunge命令的字面意思是“清除”,它在Hadoop中的作用是清空回收站。

hadoop fs -expunge


以上是常用的HDFS命令的总结,除此之外,还可以使用Java API对HDFS中的文件进行操作,等我学完后再做补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值