HDFS 基本 shell 操作

34 篇文章 3 订阅
12 篇文章 1 订阅

1.1 创建目录

调用格式:

hdfs dfs -mkdir (-p)  /目录

例如:

hdfs dfs -mkdir /data
hdfs dfs -mkdir -p /data/a/b/c

在这里插入图片描述
在这里插入图片描述

1.2 上传指令

调用格式:

hdfs dfs -put /本地文件  /分布式文件系统路径

注意: 直接写/是省略了文件系统的名称hdfs://ip:port。
例如:

hdfs dfs -put /root/a.txt /data/    # root 下的 a.txt 上传到 /data
hdfs dfs -put /root/logs/* /data/   # logs 下的所有文件上传到 /data

在这里插入图片描述
在这里插入图片描述

1.3 创建空文件

调用格式:

hdfs dfs -touchz  /系统路径/文件名

例如:

hdfs dfs -touchz  /hadooptest.txt

在这里插入图片描述
在这里插入图片描述

1.4 向分布式文件系统中的文件里追加内容

调用格式:

hdfs dfs -appendToFile  本地文件     hdfs上的文件
注意:
1)不支持在中间随意增删改操作
2)往空文件中追加就相当于直接写文件,所以能追加进去

本地文件 hello1.txt 的内容追加到 hdfs 文件 hello.txt 的后面操作如下:

在这里插入图片描述
原 hello.txt:hello world
原 hello1.txt:hello
追加的 hello.txt 中内容如下

在这里插入图片描述

1.5 查看指令

查看分布式文件系统的目录里内容

调用格式:hdfs dfs -ls /

在这里插入图片描述

查看分布式文件系统的文件内容

调用格式:hdfs dfs -cat /xxx.txt

在这里插入图片描述
在这里插入图片描述

查看分布式文件系统的文件内容

调用格式:hdfs dfs -tail /xxx.txt
注意:默认最多查看1000行

1.6 下载指令

hdfs dfs -copyToLocal  hdfs上的文件 本地路径
注意:本地路径的文件夹可以不存在
hdfs dfs -moveToLocal hdfs上的文件 本地路径
注意:从hdfs的某个路径将数据剪切到本地,已经被遗弃了
hdfs dfs -get hdfs上的文件 本地路径
调用格式:同copyToLoca

1.7 合并下载

调用格式:hdfs dfs -getmerge  hdfs上面的路径   本地的路径    
实例:hdfs dfs -getmerge /data/*.txt /root/c.txt(将hdfs上的a.txt和b.txt文件合并为c.txt保存在本地root目录下)

1.8 移动hdfs中的文件

调用格式:hdfs dfs -mv /hdfs的路径1  /hdfs的另一个路径2    
实例:hfds dfs -mv /aaa   /bbb  这里是将aaa整体移动到bbb中

原来目录如下:

在这里插入图片描述
把根目录下的 hello1 移动到 /data/ 后的目录如下

在这里插入图片描述

1.9 复制hdfs中的文件到hdfs的另一个目录

调用格式:hdfs dfs -cp 原路径  想要复制到的路径

在这里插入图片描述

1.10 删除命令

hfds dfs -rm [-f] [-r|-R] [-skipTrash] <src> ...
注意:如果删除文件夹需要加-r

hfds dfs -rmdir [--ignore-fail-on-non-empty] <dir> ...
注意:必须是空文件夹,如果非空必须使用rm删除

1.11 查看磁盘利用率和文件大小

hfds dfs -df [-h] [<path> ...]]     #查看分布式系统的磁盘使用情况
hfds dfs -du [-s] [-h] <path> ...	#查看分布式系统上当前路径下文件的情况	-h:human 以人类可读的方式显示

在这里插入图片描述
在这里插入图片描述

1.12 修改权限

跟本地的操作一致,-R是让子目录或文件也进行相应的修改

hfds dfs -chgrp [-R] GROUP PATH...
hfds dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...
hfds dfs -chown [-R] [OWNER][:[GROUP]] PATH...

1.13 修改文件的副本数

调用格式:hadoop fs -setrep  3 /   将hdfs根目录及子目录下的内容设置成3个副本
注意:当设置的副本数量与初始化时默认的副本数量不一致时,集群会作出反应,比原来多了会自动进行复制.

1.14 查看文件的状态

命令的作用:当向hdfs上写文件时,可以通过dfs.blocksize配置项来设置文件的block的大小。这就导致了hdfs上的不同的文件block的大小是不相同的。有时候想知道hdfs上某个文件的block大小,可以预先估算一下计算的task的个数。stat的意义:可以查看文件的一些属性。

调用格式:hdfs dfs -stat [format] 文件路径
format的形式:
%b:打印文件的大小(目录大小为0)
%n:打印文件名
%o:打印block的size
%r:打印副本数
%y:utc时间 yyyy-MM-dd HH:mm:ss
%Y:打印自1970年1月1日以来的utc的微秒数
%F:目录打印directory,文件打印regular file
注意:
# 当使用-stat命令但不指定format时,只打印创建时间,相当于%y
# -stat 后面只跟目录,%r,%o等打印的都是0,只有文件才有副本和大小

在这里插入图片描述

1.15 测试

参数说明: 
-e:文件是否存在  存在返回0    
-z:文件是否为空  为空返回0   
-d:是否是路径(目录) ,是返回0
调用格式:hdfs dfs -test -d 文件 
实例:hdfs dfs -test -d /data/hello.txt  && echo "OK"  || echo "no"
解释:测试当前的内容是否是文件夹 ,如果是返回ok,如果不是返回no

在这里插入图片描述

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HDFSHadoop分布式文件系统)是Hadoop生态系统的一部分,使用HDFS可以在分布式环境下存储大规模数据集。HDFS系统shell应用实验是通过使用HDFS系统的命令行工具来操作和管理HDFS文件系统。 首先,我们可以使用"hadoop fs"命令来执行HDFS系统的常见操作。例如,使用"hadoop fs -ls"命令可以列出HDFS上的所有文件和目录。使用"hadoop fs -mkdir"命令可以创建新目录,而使用"hadoop fs -rm"命令可以删除目录或文件。 另外,HDFS系统shell应用也支持文件的上传和下载。通过使用"hadoop fs -put"命令,我们可以将本地计算机上的文件上传到HDFS系统中。而使用"hadoop fs -get"命令,则可以将HDFS系统中的文件下载到本地计算机。 除了基本的文件操作HDFS系统shell应用还支持对文件内容的查看和编辑。使用"hadoop fs -cat"命令可以查看文件的内容,同时通过使用"hadoop fs -appendToFile"命令可以向文件追加内容。 另外,HDFS系统shell应用还提供了一些高级的功能,例如通过使用命令"hadoop fs -setrep"可以修改文件的副本数。而使用"hadoop fs -expunge"命令,则可以清除HDFS系统中的垃圾数据。 总之,HDFS系统shell应用实验是通过使用HDFS系统的命令行工具来进行文件管理和操作的实验。通过掌握这些命令,我们可以灵活地管理HDFS系统中的文件和目录,并进行文件的上传、下载、查看和编辑等操作。这对于在大规模数据处理和分析中使用HadoopHDFS系统非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跳舞的皮埃尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值