HDFS分布式文件系统:部分命令详解

1:HDES的本质

HDFS的中文翻译是Hadoop分布式文件系统(Hadoop Distributed File System)。它本质还是程序,主要还是以树状目录结构来管理文件(和linux类似,/表示根路径),且可以运行在多个节点上(即分布式)。

2:HDFS的架构

(1)NameNode:即是master: 1、管理HDFS的命名空间 配置副本策略;2、惯例数据块Blocks的映射欣喜;3、处理客户端读写请求。

(2)DataNode:即是slave: 1、master下达命令,DataNode执行操作;2、存储实际的数据块 ;3、执行数据块的读/写操作。

(3)Clinet:客户端:1、文件切分。文件上传HDFS时,Client将文件切分成一个个Block后上传 ;2、与NameNode交互,获取文件的位置信息;3、与DataNode交互,读取或写入数据 Client提供一些命令来管理HDFS,如NameNode语法化;4、Client通过一些命令来访问HDFS,如HDFS增删改查操作。

(4)Secondary NameNode:1、 辅助NameNode,分单其工作量,如定期合并simage和Edits,并推送给NameNode;2、在紧急情况下,可以辅助恢复NameNode。

3:HDFS解决的核心问题

存储海量离线数据(如TB、PB、ZB级别的数据),并且保证数据高可用,支持高并发访问。

注:不适合将大量的小文件存到HDFS。(主要原因:HDFS的NameNode进程在内存中存储文件的元数据,故文件越多,消耗的内存就越大。大量的小文件,耗尽NameNode节点的内存,而实际存的文件总量却很小,HDFS存海量数据的优势没有发挥出来)。

(1)元数据:简单理解,除了文件的数据本身,文件的信息都可以称为元数据,如文件名字、文件数据块信息、数据块和DataNode节点对应信息等。元数据存储在NameNode的内存中。为了避免元数据丢失,NameNode会将HDFS的操作日志(如创建文件、删除文件等操作)写入EditLog日志文件中,并由SecondaryNameNode进程定期将EditLog合并到FSImage文件中。集群重启,NameNode就会读取FSImage文件来恢复元数据。

(2)数据块:HDFS存文件的时候,会将文件按照一定的大小(Hadoop2默认是128M)进行分割,独立存储,这些独立的文件即为数据块(Block)。

(3)数据副本:将一个数据块Block1复制2份,每一份即为一个副本,副本数为3。

4:HDFS的常用命令

HDFS很多命令用法和linux命令类似。

(1)显示HDFS指定路径下的所有文件

1、语法:hdfs dfs -ls <指定文件夹>

2、输入命令:hdfs dfs -ls /

(2)在HDFS上创建文件夹

1、语法:hdfs dfs -mkdir [-p] <指定文件夹> (注:-p:如果要创建的目录的父目录不存在,则自动补上父目录)

2、输入命令:hdfs dfs -mkdir -p /1/dir1/dir2

3、(-ls显示补充)输入命令:hdfs dfs -ls -R / (注:-R:将指定目录的所有文件显示出来,包括子目录里的文件)

(3)上传本地文件到HDFS

1、语法:hdfs dfs -put <local src path> <dst path>(注:local src path:被上传的本地文件路径;dst path:HDFS目标路径,即文件将被上传到这个路径上)

2、输入命令:hdfs dfs -put /usr/local/hadoop-3.1.3/test/test.txt /1/dir1/dir2

(4)查看文件

1、语法:hdfs dfs -cat

2、输入命令:hdfs dfs -cat /1/dir1/dir2/test.txt

(5)将HDFS的文件下载到本地文件系统的路径

1、语法:hdfs dfs -get <src path> <local dst>(注:src path:被下载的HDFS文件路径; local dst:本地文件系统目标路径,即文件将被下载到这个路径)

2、输入命令:hdfs dfs -get /1/dir1/dir2/test.txt ~

(6)删除HDFS上的文件或者目录

1、语法:hdfs dfs -rm [-r] <指定的文件夹>(注: -r : 表示递归删除,即连同子目录一同删除)

2、带-r的删除命令:输入命令: hdfs dfs -rm /1/dir1/test.txt

3、带-r的删除命令:输入命令:hdfs dfs -rm -r /1/dir1/

5:结语

以上就是整理的部分有关Hadoop的命令,注意:这些命令需要在Hadoop的安装目录的bin目录下执行,或者你的系统环境变量中已经包含了Hadoop的bin目录。

希望对大家有帮助,谢谢。

  • 29
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值