HDFS 常见基础操作命令

文章目录

  • 1. HDFS文件系统基本信息
  • 2. HDFS基础命令
    • 2.1 HDFS上创建文件夹
    • 2.2 查看HDFS指定目录下的内容
    • 2.3 本地上传文件到HDFS指定目录下
    • 2.4 查看HDFS文件内容
    • 2.5 下载HDFS文件
    • 2.6 复制HDFS文件
    • 2.7 追加数据到HDFS文件中
    • 2.8 HDFS数据移动
    • 2.9 HDFS删除数据
  • 3. HDFS更多命令

1. HDFS文件系统基本信息

HDFS和Linux系统一样,均是以/作为跟目录的组织形式

如何区分HDFS和Linux上的路径?

可以采用如下方式区分

# 在linux路径前面加file:///
Linux:file:///
file:///usr/local/hello.txt

# 在hdfs路径前加hdfs://namdnode地址:port/
HDFS: hdfs://namenode:port/
hdfs://node:8020/usr/local/hello.txt

注意:在真正hdfs命令中协议头file:///hdfs:///node地址:8020可以省略
在需要提供Linux路径的参数,会自动识别为file:///;在需要提供HDFS路径的参数,会自动识别为hdfs://;除非明确需要写或者不写会有BUG,否则一般不用写协议头。

2. HDFS基础命令

老版本:hadoop fs 开头
新版本:hdfs dfs 开头

使用新版本和老版本命令都可以,接下来以新版本命令演示

2.1 HDFS上创建文件夹

hdfs dfs -mkdir [-p]

  • path:为待创建的目录
  • -p:创建多级目录

示例:

hdfs dfs -mkdir -p /usr/local/server

2.2 查看HDFS指定目录下的内容

hdfs dfs -ls [-h] [-R] []

  • path:指定要查看的路径
  • -h:人性化显示文件的大小
  • -R:递归查看指定目录及其子目录

示例:

hdfs dfs -ls -lh /usr

2.3 本地上传文件到HDFS指定目录下

hdfs dfs -put [-f] [-p]

  • -f:覆盖目标文件
  • -p:保留访问和修改时间,所有权和权限
  • local path:本地文件系统地址
  • hdfs path:HDFS上目标文件系统

示例:

# 带协议头
hdfs dfs -put file:///etc/profile hdfs://node:8020/usr
# 不带协议头
hdfs dfs -put /etc/profile /usr

2.4 查看HDFS文件内容

hdfs dfs -cat

读取指定文件全部内容
示例:

hdfs dfs -cat /usr/profile

在读取大文件的时候可以使用管道符配合more:

hdfs dfs -cat /usr/profile | more

2.5 下载HDFS文件

hdfs dfs -get [-f] [-p]

  • hdfs path:hdfs上要下载的文件路径
  • local dir:本地下载到的路径
  • -f:覆盖目标文件
  • -p:保留访问和修改时间,所有权和权限

示例:

# 下载hdfs上的profile文件到当前目录
hdfs fs -get /usr/profile ./

2.6 复制HDFS文件

hdfs dfs -cp [-f]

  • -f:覆盖目标文件

示例:

# 复制 a.txt到/usr路径下
hdfs fs -cp /small/a.txt /usr

# 重命名
 hadoop fs -cp /small/1.txt /small/1.txt

只能是在HDFS上的路径之间的复制,不能本地文件复制到HDFS

2.7 追加数据到HDFS文件中

hdfs dfs -appendToFile

将所有给定文本文件的内容追加到给定的hdfs文件
hdfs path如果文件不存在,将创建文件
如果为-,则输入为从标准输入中读取。

示例:

hdfs fs -appendToFile 1.txt 2.txt 3.txt /usr/a.txt

2.8 HDFS数据移动

hdfs dfs -mv

示例:

# 移动a.txt 到/local路径下:
hdfs dfs -mv /usr/a.txt /local

# 重命名:
hdfs dfs -mv /usr/a.txt /usr/b.txt

移动文件到指定的文件夹下,也可以使用该命令重命名

2.9 HDFS删除数据

hdfs dfs -rm -r [-skipTrash] URI [URI ....]

示例:

hdfs dfs -rm -r -skipTrash /usr/b.txt

删除指定路径的文件或文件夹,-skipTrash表示跳过回收站,直接删除

3. HDFS更多命令

以上是HDFS常用的基础命令,基本上已经可以满足使用,可以发现大部分都是和linux系统中的命令一致,如果需要更多HDFS命令,可以查看官方文档:

https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-common/FileSystemShell.html

你可能感兴趣的:(hadoop,hdfs,hadoop,大数据)