KennethCheng
Published on 2024-09-12 / 19 Visits
0
0

HDFS常用命令

version

查看Hadoop版本

hdfs dfs version

mkdir

创建HDFS文件系统目录

hdfs dfs -mkdir /user/dir

ls

类似Linux Shell的ls命令。用它可以列出指定目录下的所有文件。

hdfs dfs -ls -R

put

把本地文件系统文件和目录拷贝到HDFS

hdfs dfs -put /home/dataflair/Desktop/sample /user/dataflair/dir1

get

从HDFS下载文件到本地文件系统

hdfs dfs -get /user/dir1 /home

把HDFS多个文件合并下载到本地系统的一个文件里面

hdfs dfs -getmerge /user/dir1/sample.txt /user/dir2/sample2.txt /home/sample1.txt

cat

在控制台现实文件内容

hdfs dfs -cat /user/dir1/sample.txt

mv

把文件移动到目标路径

hdfs dfs -mv /user/dir1/sample.txt /user/dir2

cp

把文件或者目录拷贝到指定路径下

hdfs dfs -cp /user/dataflair/dir2/sample.txt /user/dataflair/dir1

tail

在控制台现实文件最后1KB的数据

hdfs dfs -tail /user/dataflair/dir2/purchases.txt
hdfs dfs -tail -f /user/dataflair/dir2/purchases.txt

提示

-f 参数可以实时查看文件的变化

rm

删除文件和目录,删除目录时需要加r参数

hdfs dfs -rm /tmp/tmp20240813
# rm: `/tmp/tmp20240813': Is a directory
hdfs dfs -rm -r /tmp/tmp20240813

expunge

清空回收站

hdfs dfs -expunge

chown

改变文件的拥有者。使用-R将改变在目录结果下递归进行。命令的使用者必须是超级用户。

hdfs dfs -chown -R dataflair /opt/hadoop/logs

chmod

改变文件的权限。使用-R将使改变在目录结构下递归进行。命令的使用者必须是超级用户。

hdfs dfs -chmod 777 /user/dataflair/dir1/sample

setrep

改变一个文件的副本系数。-R选项用于递归改变目录下所有文件的副本数

hdfs dfs -setrep -w 3 /user/dataflair/dir1

df

展示 Hadoop 文件系统可用空间。

hdfs dfs -df -h

touchz

创建一个0字节的空文件。

hdfs dfs -touchz /user/dataflair/dir2

test

用于文件检测操作,如果路径存在,返回 1,如果是目录返回 0。

提示

-e 检查文件是否存在。如果存在则返回0。

-z 检查文件是否是0字节。如果是则返回0。

-d 如果路径是个目录,则返回1,否则返回0。

hdfs dfs -test -e sample
hdfs dfs -test -z sample
hdfs dfs -test -d sample

text

将源文件输出为文本格式。允许的格式是 zip 和 TextRecordInputStream。

hdfs dfs -text /user/dataflair/dir1/sample

stat

返回指定路径统计信息

hdfs dfs -stat /user/dataflair/dir1

appendToFile

追加一个文件到已经存在的文件末尾

hadoop fs -appendToFile /home/dataflair/Desktop/sample /user/dataflair/dir1

checksum

返回文件的校验和信息。

hadoop fs -checksum /user/dataflair/dir1/sample

count

统计一个指定目录下的文件结点数量。

$ hadoop fs -count /testelephant
 2      1    108     testelephant

提示

第一个数值 2 表示 /testelephant 下的文件夹的个数,

第二个数值 1 表是当前文件夹下文件的个数,

第三个数值 108 表示该文件夹下文件所占的空间大小,这个大小是不计算副本的个数的,单位是字节(byte)。

$ hadoop fs -count -q /sunwg
1024     1021    10240    10132     2      1    108    /testelephant

提示

在 count 后面增加 -q 选项可以查看当前文件夹的限额使用情况。

第一个数值 1024 ,表示总的文件包括文件夹的限额。

第二个数值 1021 ,表示目前剩余的文件限额,即还可以创建这么多的文件或文件夹。

第三个数值 10240 ,表示当前文件夹空间的限额。

第四个数值 10132 ,表示当前文件夹可用空间的大小,这个限额是会计算多个副本的。

剩下的三个数值与 -count 的结果一样。

find

找出能匹配上的所有文件。

hadoop fs -find /user/dataflair/dir1/ -name sample -print

提示

-name pattern 不区分大小写,对大小写不敏感。

-iname pattern 对大小写敏感。

-print 打印。

-print0 打印在一行。


Comment