1 FS Shell
调用文件系统 (FS)Shell 命令应使用 bin/hadoop fs <args>
的形式。 所有的的 FS shell 命令使用 URI路径作为参数。URI 格式是
scheme://authority/path
对HDFS文件系统,scheme 是 hdfs,对本地文件系统,scheme 是 file。其中 scheme 和 authority 参数都是可选的,如果未加指定,就会使用配置中指定的默认 scheme。一个 HDFS 文件或目录比如 /parent/child 可以表示成
hdfs://namenode:namenodeport/parent/child,
或者更简单的
/parent/child
(假设你配置文件中的默认值是 namenode:namenodeport)。大多数 FS Shell 命令的行为和对应的 Unix Shell 命令类似,不同之处会在下面介绍各命令使用详情时指出。出错信息会输出到 stderr,其他信息输出到 stdout。
2 FS 最常用的命令:
hadoop fs -ls hdfs_path //查看HDFS目录下的文件和子目录
hadoop fs -mkdir hdfs_path //在HDFS上创建文件夹
hadoop fs -rm hdfs_path //删除HDFS上的文件
hadoop fs -rmr hdfs_path //删除HDFS上的文件夹
hadoop fs -put local_file hdfs_path //将本地文件copy到HDFS上
hadoop fs -get hdfs_file local_path //复制HDFS文件到本地
hadoop fs -cat hdfs_file //查看HDFS上某文件的内容
3 FS 查看目录下文件夹或者文件的大小
//单位Byte:
hadoop fs -du / | sort -n
//单位MB:
hadoop fs -du / | awk -F ‘ ‘ ‘{printf “%.2fMB\t\t%s\n”, $1/1024/1024,$2}’ | sort -n
//单位GB,大于1G:
hadoop fs -du / | awk -F ‘ ‘ ‘{num=$1/1024/1024/1024; if(num>1){printf “%.2fGB\t\t%s\n”, num, $2} }’ | sort -n
sort -n 表示按照文件大小,从小到大排列顺序。
hadoop fs -du -h hdfs_path
使用 -h 显示 hdfs 对应路径下每个文件夹和文件的大小,文件的大小用方便阅读的形式表示,例如用64M代替67108864
4 其余FS Shell命令
hadoop fs -cat hdfs_path //将路径指定的文件内容输出到 stdout
hadoop fs -tail hdfs_path //将文件尾部1k字节的内容输出到 stdout
hadoop fs -stat hdfs_path //返回指定路径的统计信息
hadoop fs -du hdfs_path //返回目录中所有文件的大小,或者只指定一个文件时,显示该文件的大小
详细可见:https://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html