HDFS常用命令

432 阅读3分钟

一、帮助信息命令:

1、help 用于显示命令的帮助信息,

./hdfs dfs -help ls

二、文件和目录管理命令:

  1. ls(r): 列出当前目录下的所有文件,使用 -R 递归显示子文件夹。
./hdfs dfs -ls /log/map
./hdfs dfs -lsr /log/   (递归的)
  1. du(s): 显示目录中所有文件大小,支持指定单个文件。
./hdfs dfs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://host:port/user/hadoop/dir1
  1. count[-q]: 显示当前目录下所有文件大小。
  2. mv: 移动多个文件目录到目标目录。
./hdfs dfs -mv /user/hadoop/file1 /user/hadoop/file2
  1. cp: 复制多个文件到目标目录。
./hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2
(将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。)

三、文件和目录操作命令:

  1. rm(r): 删除文件(夹),支持递归删除。
./hdfs dfs -rmr /log/map1  (递归删除)
  1. put: 将本地文件复制到HDFS。
./hdfs dfs -put test.txt /log/map/
  1. copyFromLocal: 将本地文件复制到HDFS。
./hdfs dfs -copyFromLOcal /usr/data/text.txt /log/map1/   (将本地的text.txt 复制到hdfs的/log/map1/下)
  1. moveFromLocal: 将本地文件移动到HDFS。
./hdfs dfs -moveFromLocal /usr/data/text.txt /log/map1/   (将本地的text.txt移动到hdfs的/log/map1/下)

四、文件下载和合并命令:

  1. get[-ignoreCrc]: 复制文件到本地,可以忽略CRC校验。
./hdfs dfs -get /log/map1/*  . (复制到本地当前目录下)
/hdfs dfs -get /log/map1/* /usr/data (将hdfs下的/log/map1/下的所有文件全部复制到本地的/usr/data/下 )
  1. getmerge[addnl]: 将源目录中的所有文件排序合并到一个文件中,接受一个源目录和一个目标文件作为输入,并且将源目录中所有的文件连接成本地目标文件。addnl是可选的,用于指定在每个文件结尾添加一个换行符。
./hdfs dfs -getmerge /log/map1/* /usr/data(将hdfs上的/log/map1/下的所有文件合并下载到本地的/usr/data下)

五、文件内容查看命令:

  1. cat: 在终端显示文件内容。
 ./hdfs dfs -cat /log/map1/part-00000  | head (读取hdfs上的/log/map1下的part-00000文件    head参数,代表前十行。)
 /hdfs dfs -tail /log/map1/part-00000 (查看文件的最后一千行)
  1. text: 在终端显示文件内容,输出为文本格式。 允许的格式是zip和TextRecordInputStream

  2. tail: 查看文件的最后一千行。

  3. copyToLocal[-ignoreCrc] 复制文件到本地

  4. moveToLocal 移动文件到本地

六、文件过滤和创建命令:

  1. grep: 从HDFS上过滤包含某个字符的行内容。
./hdfs dfs -cat /log/testlog/* | grep 过滤字段
  1. mkdir: 创建文件夹,支持 -p 选项创建不存在的父路径。
./hdfs dfs -mkdir -p /dir1/dir11/dir111 
  1. touchz: 创建一个空文件。

总结:

这些命令使得大数据开发人员能够方便地管理和操作分布式文件系统中的数据,提高了数据处理的效率和灵活性。