1.前言

HDFS作为分布式存储的文件系统,有其对数据的路径表达方式

HDFS同linux系统一样,均是以/作为根目录的组织形式

hdfs指令带认证_大数据

linux:/usr/local/hello.txt

HDFS:/usr/local/hello.txt

2.如何区分呢?

Linux:file:///

HDFS:hdfs://namenode:port/

协议头file:///或hdfs://root1:8020/可以省略

需要提供Linux路径的参数,会自动识别为file://

需要提供HDFS路径的参数,会自动识别hdfs://

除非明确需要写或不写会有BUG,否则一般不用写协议头

3.介绍

关于HDFS文件系统的操作命令,Hadoop提供了2套命令体系

hadoop命令(老版本),用法:hadoop fs [generic options]

hdfs指令带认证_hdfs指令带认证_02

hdfs命令(新版本用法),用法:hdfs dfs [generic options]

hdfs指令带认证_HDFS_03

两者在文件系统操作上,用法完全一致

用哪个都可以

某些特殊操作需要选择hadoop命令或hdfs命令

3.1 创建文件夹

hadoop fs -mkdir [-p] <path> ….

hdfs dfs -mkdir [-p] <path>  ….

path为待创建的目录

-p选择的行为与linux mkdir -p一致,它会沿着路径创建父目录

3.2 查看指定目录下内容

hadoop fs -ls [-h] [-R] [<path>…]

hdfs dfs -ls [-h] [-R] [<path>…]

path指定目录路径

-h人性化显示文件size(大小)

-R递归查看指定目录以及子目录

hdfs指令带认证_大数据_04

3.3 上传文件到HDFS指定目录下

hadoop fs -put [-f] [-p] <localsrc>…<dst>

hdfs dfs -put [-f] [-p] <localsrc>…<dst>

-f 覆盖目标文件(以存在下)

-p 保留访问和修改时间,所有权和权限

localsrc本地文件系统(客户端所在机器)

dst 目标文件系统(HDFS)

例子:

hadoop fs -put word.txt /root

hdfs dfs -put file:///etc/profile hdfs://root1:8020/root

3.4 查看HDFS文件内容

hadoop fs -cat <src>…

hdfs dfs -cat <src>…

读取指定文件全部内容,显示在标准输出控制台

hadoop fs -cat /root/1.txt

hdfs dfs -cat /root/2.txt

读取大文件可以使用管道符配合more(配合grep过滤非常好用)

hadoop fs -cat <src> | more

hdfs dfs -cat <src> | more

3.5 下载HDFS文件

hadoop fs -get [-f] [-p] <src> … <localdst>

hdfs dfs -get [-f] [-p] <src> … <localdst>

下载文件到本地文件系统指定目录,localdst必须是目录

-f 覆盖目标文件(已存在下)

-p 保留访问和修改时间,所有权和权限

hdfs指令带认证_hdfs_05

3.6 拷贝HDFS文件

hadoop fs -cp [-f] <src>…<dst>

hdfs dfs -cp [-f] <src>…<dst>

-f 覆盖目标文件(已存在下)

hdfs指令带认证_hdfs_06

3.7 追加数据到HDFS文件中

hadoop fs -appenToFile <localsrc>…<dst>

hdfs dfs -appendToFile <localsrc>…<dst>

将所有给定本地文件的内容追加到给定dst文件

dst如果文件不存在,将创建该文件

如果<localsrc>为-,则输入为从标准输入中读取

hdfs指令带认证_大数据_07

3.8 HDFS数据移动操作

hadoop fs -mv <src>…<dst>

hdfs dfs -mv <src>…<dst>

移动文件到指定文件夹下

可以使用命令移动数据

3.9 HDFS数据删除操作

hadoop fs -rm -r [-skipTrash] URl [URl …]

hdfs dfs -rm -r [-skipTrash] URl [URl …]

删除指定路径的文件或文件夹

-skipTrash跳过回收站,直接删除

hdfs指令带认证_hadoop_08

4.HDFS shell其他命令

命令官方指导文档

Apache Hadoop 3.3.4 – Overview

5.HDFS web浏览

除了使用命令操作HDFS文件系统外,在HDFS的web UI上也可以查看HDFS文件系统的内容

hdfs指令带认证_hdfs指令带认证_09

hdfs指令带认证_hdfs_10