Hdfs 的shell 操作 hadoop fs -操作命令 -参数 -ls #显示目录信息 -->hadoop fs -ls / 查看根目录信息 -put #等同于copyFromLocal #从本地文件系统中拷贝文件到hdfs 路径去 -get #等同于copyToLocal,就是从hdfs 下载文件到本地#从hdfs 拷贝到本地 -getmerge #合并下载多个文件 --> 比如hdfs 的目录/aaa/下有多个文件:log.1, log.2,log.3,... hadoop fs -getmerge /aaa/log.* ./log.sum -moveFromLocal #从本地移动到hdfs -moveToLocal #从hdfs 移动到本地 -cp #从hdfs 的一个路径拷贝hdfs 的另一个路径 -->hadoop fs -cp /aaa/jdk.tar.gz /bbb/jdk.tar.gz.2 -mv #在hdfs 目录中移动文件 -mkdir #在hdfs 上创建目录这里的-p 是创建目录下再创建目录-mkdir 只能创建一个目录 -->hadoop fs -mkdir -p /aaa/bbb/cc/dd -rm #删除文件或文件夹-r 删除aaa 目录下的子集目录bbb 没有-r 只能删除aaa --> hadoop fs -rm -r /aaa/bbb/ -rm -skipTrash 永久删除 [root@hdfs-master-84-20 ~]# sudo -u hdfs hadoop fs -rm -skipTrash /data/vargoFile/* -rmdir #删除空目录 -cat ---显示文件内容 -->hadoop fs -cat /hello.txt -tail ---显示文件内容(用法和cat 一样) [root@NewCDH-0--141 ~]# hadoop fs -tail /mjh/shiyanshuju/shiyanshuju.txt 001,zhangsan,5678,zhangsan@email.com,123456789,10000.00 002,lisi,1234,lisi@qq.com,987654321,7896.00 003,wangwu,7890,wangwu@163.com,234567145,3456.00

[root@NewCDH-0--141 ~]# hadoop fs -cat /mjh/shiyanshuju/shiyanshuju.txt 001,zhangsan,5678,zhangsan@email.com,123456789,10000.00 002,lisi,1234,lisi@qq.com,987654321,7896.00 003,wangwu,7890,wangwu@163.com,234567145,3456.00[root@NewCDH-0--141 ~]# -chgrp -chmod -chown 上面三个跟linux 中的用法一样 -->hadoop fs -chmod 666 /hello.txt -count #统计一个指定目录下的文件节点数量

-->hadoop fs -count /aaa/ -createSnapshot -deleteSnapshot -renameSnapshot 以上三个用来操作hdfs 文件系统目录信息快照 -->hadoop fs -createSnapshot / -df #统计文件系统的可用空间信息 -du -->hadoop fs -df -h / #后面要加-h 在linux 中-->df -Th 代表查看整个系统的可用空间情况 -->hadoop fs -du -s -h /aaa/ #查看在aaa 文件下文件所用了多少空间(也就是查看文件大小) --> du -s -h mjh.data #查看mjh.data 文件大小 -du 统计目录下文件大小; -du -s 汇总目录下文件大小,单位字节; -du -h ,显示目录下各个 文件的大小。-du -s -h /user/hive/warehouse/table_test ,汇总该表所占据的存储空间,显示单位。 [root@NewCDH-0--141 ~]# sudo -u hdfs hadoop fs -du / 46126 1610713413 /hbase 186 522 /mjh 173 519 /newdata 651 1953 /newdata.har 2119478 4314688 /tmp 589588200 1765140911 /user [root@NewCDH-0--141 ~]# sudo -u hdfs hadoop fs -du -s / 591754814 3380172006 / [root@NewCDH-0--141 ~]# sudo -u hdfs hadoop fs -du -s -h / 564.3 M 3.1 G / [root@NewCDH-0--141 ~]# sudo -u hdfs hadoop fs -du -h / 45.0 K 1.5 G /hbase 186 522 /mjh 173 519 /newdata 651 1.9 K /newdata.har 2.0 M 4.1 M /tmp 562.3 M 1.6 G /user 第一列标示该目录下总文件大小 第二列标示该目录下所有文件在集群上的总存储大小和你的副本数相关,我的副本数是3 , 所以 第二列的是第一列的三倍(第二列内容=文件大小*副本数) 第三列标示你查询的目录 [root@NewCDH-0--141 ~]# sudo -u hdfs hadoop fs -count -q / 9223372036854775807 9223372036854772688 none inf 2192 927 591754814 / 根目录逻辑空间大小为591754814B 1G=1024MB=1024X1024KB=1024X1024X1024B,也就是1G=1024x1024x1024 个字节。 591754814B=0.55111G fs -count -q 会输出8 列,分别表示如下: 命名空间的剩余的命物理空间的quota 剩余目录文件目录逻路径 quota(限制文件数)名空间quota(限制空间占用大小) 的物理空数统计数统计辑空间总大小 可以看出通过hadoop fs -count -q 可以看到一个目录比较详细的空间和qutoa占用情况,包含了物理空间、逻辑空间、文件数、目录数、qutoa 剩余量等参考: 理解hadoop fsck 、fs -dus 、-count -q 的大小输出:http://www.opstool.com/article/255 -help #输出这个命令参数手册 -setrep #设置hdfs 中文件的副本数量 -->hadoop fs -setrep 3 /aaa/jdk.tar.gz -stat #显示一个文件或文件夹的元信息TDH 中显示创建的时间 -tail #显示一个文件最后一个1KB 的信息 -text #以字符形式打印一个文件的内容