1.前言
HDFS作为分布式存储的文件系统,有其对数据的路径表达方式
HDFS同linux系统一样,均是以/作为根目录的组织形式
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 dfs [generic options]
两者在文件系统操作上,用法完全一致
用哪个都可以
某些特殊操作需要选择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递归查看指定目录以及子目录
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 保留访问和修改时间,所有权和权限
3.6 拷贝HDFS文件
hadoop fs -cp [-f] <src>…<dst>
hdfs dfs -cp [-f] <src>…<dst>
-f 覆盖目标文件(已存在下)
3.7 追加数据到HDFS文件中
hadoop fs -appenToFile <localsrc>…<dst>
hdfs dfs -appendToFile <localsrc>…<dst>
将所有给定本地文件的内容追加到给定dst文件
dst如果文件不存在,将创建该文件
如果<localsrc>为-,则输入为从标准输入中读取
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跳过回收站,直接删除
4.HDFS shell其他命令
命令官方指导文档
Apache Hadoop 3.3.4 – Overview
5.HDFS web浏览
除了使用命令操作HDFS文件系统外,在HDFS的web UI上也可以查看HDFS文件系统的内容