HDFS的Shell命令
HDFS的Shell操作命令是日常开发中最长用到的,需要熟悉掌握并运用。
命令基本格式:hadoop fs -cmd <args>
一、查看类
1. ls
#-ls:查看,列出hdfs文件系统根目录下的目录和文件
hadoop fs -ls /
2. cat
#查看文件内容
hadoop fs -cat < hdfs file >
二、上传类
1. put
#-put:上传,从本地文件系统中上传文件到HDFS路径去
hadoop fs -put < local file > < hdfs file >
2. moveFromLocal
#-moveFromLocal:从本地剪切粘贴到HDFS
hadoop fs -moveFromLocal < local file > < hdfs file >
3. copyFromLocal
#-copyFromLocal:从本地上传到HDFS,等同put
hadoop fs -copyFromLocal < local file > < hdfs file >
4. appendToFile
#-appendToFile:追加一个文件到已经存在的文件末尾
hadoop fs -appendToFile < local file > < hdfs file >
三、下载类
1. get
#-get:下载,从HDFS拷贝文件到本地文件夹
hadoop fs -get < hdfs file > < local file or dir>
2. copyToLocal
#-copyToLocal:下载,从HDFS拷贝文件到本地,等同get
hadoop fs -copyToLocal < hdfs file > < local file or dir>
四、HDFS文件操作类
1.rm
#删除文件或文件夹
hadoop fs -rm < hdfs file >
#递归删除目录及目录中内容
hadoop fs -rm -r < hdfs dir >
2. cp
#从HDFS的一个路径拷贝文件到HDFS的另一个路径
hadoop fs -cp < hdfs file > < hdfs file or dir >
#当目标文件为file时,相当于在目标路径重命名源文件
#当源文件有多个时,目标路径必须是文件夹,且存在
3. mv
#-mv: 在HDFS目录中移动文件
hadoop fs -mv < hdfs file > < hdfs dir >
4. mkdir
#-mkdir:在HDFS创建路径,加-p可以创建不存在的父目录
hadoop fs -mkdir -p < hdfs path >
5. tail
#-tail: 显示一个文件的末尾1kb的数据
hadoop fs -tail < hdfs file >
6. getmerge
#-getmerge: 将HDFS指定目录下的文件排列后合并到local指定的文件中
hadoop fs -getmerge < hdfs dir > < local file >
#文件不存在时会自动创建,存在时会覆盖里面的内容
hadoop fs -getmerge -nl < hdfs dir > < local file >
#加上 -nl ,合并到local file的hdfs文件之间会空出一行
7. du
#-du: 统计路径下,文件夹的大小信息
hadoop fs -du < hdfs path >
#显示HDFS对应路径下文件夹的和的大小信息
hadoop fs -du -s < hdfs path >
#按照合适的单位显示文件夹的大小
7. stat
#-stat: 返回对应路径的信息
hadoop fs -stat [format] < hdfs path >
#[format]可选参数有:
#%b(文件大小),%o(Block大小),%n(文件名),%r(副本个数),%y(最后一次修改日期和时间)
8. setrep
#-setrep: 改变一个文件在hdfs中的副本个数
hadoop fs -setrep -R 3 < hdfs path >
#3为所设置的副本个数,-R选项可以对一个人目录下的所有目录+文件递归执行改变副本个数的操作
9. balancer
#如果管理员发现某些DataNode保存数据过多,某些DataNode保存数据相对较少,可以使用上述命令手动启动内部的均衡过程
hdfs balancer
后记
记录自己的学习,一起进步我们都有光明的未来。