HDFS分布文件系统(Hadoop Distributed File System)

目录

一.HDFS的本质

二.HDFS的架构与原理

三、HDFS特性

四.HDFS的常用命令 

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

2.在HDFS上创建文件夹

3.上传本地文件到HDFS 

4.查看文件

5.删除HDFS上的文件或者目录

6.修改指定文件的权限信息(读、写、执行)

一般语法:chmod [可选项]

五、HDFS实战应用

六、总结


一.HDFS的本质

Hadoop Distributed File System(HDFS)是Hadoop的核心组件之一,它是一个高度容错性的分布式文件系统,能够处理超大规模数据集。HDFS被设计成运行在廉价硬件上,能够自动检测并处理硬件故障,从而提供高可用性和高可靠性。HDFS采用主/从(Master/Slave)架构,主要由NameNode和DataNode两类节点组成。它本质还是程序,主要还是以树状目录结构来管理文件(和linux类似,/表示根路径),且可以运行在多个节点上(即分布式)。

二.HDFS的架构与原理

  1. NameNode:即是master:
    • 管理HDFS的命名空间
    • 配置副本策略
    • 惯例数据块Blocks的映射欣喜
    • 处理客户端读写请求
  2. DataNode:即是slave:
    • master下达命令,DataNode执行操作
    • 存储实际的数据块
    • 执行数据块的读/写操作
  3. Clinet:客户端
    • 文件切分。文件上传HDFS时,Client将文件切分成一个个Block后上传
    • 与NameNode交互,获取文件的位置信息
    • 与DataNode交互,读取或写入数据
    • Client提供一些命令来管理HDFS,如NameNode语法化
    • Client通过一些命令来访问HDFS,如HDFS增删改查操作
  4. Secondary NameNode
    • 辅助NameNode,分单其工作量,如定期合并simage和Edits,并推送给NameNode
    • 在紧急情况下,可以辅助恢复NameNode

 

 

三、HDFS特性

高可靠性

HDFS通过数据块的冗余存储和NameNode的元数据备份机制来实现高可靠性。当某个DataNode出现故障时,HDFS可以从其他DataNode中读取相同的数据块来恢复数据。同时,NameNode的元数据也会被定期备份到多个节点上,以防止单点故障导致数据丢失。

高可扩展性

HDFS采用分布式架构,可以方便地添加新的DataNode来扩展存储容量。同时,HDFS的元数据管理也支持水平扩展,可以通过增加NameNode的数量来提高元数据的处理能力。

高性能

HDFS通过数据块的并行处理和传输来提高数据处理效率。同时,HDFS还采用了一些优化技术,如数据块预取、缓存机制等,来进一步提高读写性能。

易用性

HDFS提供了类似于POSIX的文件系统接口,使得用户可以像操作本地文件系统一样来操作HDFS。同时,HDFS还提供了丰富的命令行工具和API接口,方便用户进行数据的存储、管理和分析。

四.HDFS的常用命令 

HDFS很多命令用法与Linux命令类似

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

语法:hdfs dfs -ls <path>

输入命令:hdfs dfs -ls /

结果显示如下图:

 


2.在HDFS上创建文件夹

语法:hdfs dfs -mkdir [-p] <path> 

  1. -p:如果要创建的目录的父目录不存在,则自动补上父目录
  2. 输入命令:hdfs dfs -mkdir -p /1/dir1/dir2
  3. (-ls显示补充)输入命令:hdfs dfs -ls -R /(-R:将指定目录的所有文件显示出来,包括子目录里的文件)


3.上传本地文件到HDFS 

  • 语法:hdfs dfs -put <local src path> <dst path>
    • dst path:HDFS目标路径,即文件将被上传到这个路径上
    • local src path:被上传的本地文件路径
    • 输入命令:hdfs dfs -put /usr/local/hadoop-3.1.3/test/test.txt /1/dir1/dir2

 


4.查看文件

  1. 语法:hdfs dfs -cat <path>
  2. 输入命令:hdfs dfs -cat /1/dir1/dir2/test.txt

 

 


将HDFS的<src path>文件下载到本地文件系统的<local dst>路径

  1. 语法:hdfs dfs -get <src path> <local dst>
  2. local dst:本地文件系统目标路径,即文件将被下载到这个路径
  3. src path:被下载的HDFS文件路径
  4. 输入命令:hdfs dfs -get /1/dir1/dir2/test.txt ~

 


 将HDFS的<src path>文件下载到本地文件系统的<local dst>路径

  1. 语法:hdfs dfs -get <src path> <local dst>
  2. local dst:本地文件系统目标路径,即文件将被下载到这个路径
  3. src path:被下载的HDFS文件路径
  4. 输入命令:hdfs dfs -get /1/dir1/dir2/test.txt ~

 


 

5.删除HDFS上的文件或者目录

  1. 语法:hdfs dfs -rm [-r] <path>
  2. -r : 表示递归删除,即连同子目录一同删除
  3. 例1:不带-r的。输入命令: hdfs dfs -rm /1/dir1/test.txt

 

例2:

  • 带-r的。输入命令:hdfs dfs -rm /1/dir1/

 


6.修改指定文件的权限信息(读、写、执行)

  1. 一般语法:chmod [可选项] <mode> <path>

  2. 可选项,常见的如-R:递归修改子目录
  3. mode:权限设定字符串。语法:[ugoa][+-=][rwx]
  4. rwx:r表示可读取,w表示可写入,x表示可执行
  5. +-=:+表示增加权限、-表示取消权限、=表示唯一设定权限
  6. ugoa:u表示该文件的所有者,g表示所属组,o表示其他以外的人,a表示这三者皆是
  7. 回顾:Linux、hdfs通过所有者(user)所属组(group)其他(other)这三个角色来管理文件权限,如果当前登录的用户没有相应权限,那么执行某些命令就会报错。常见的三种权限:
    • 执行execute,用x表示
    • 写write,用w表示
    • 读read,用r表示

 

五、HDFS实战应用

1.数据存储

HDFS可以用于存储各种类型的数据文件,如日志文件、图片文件、视频文件等。通过将数据存储在HDFS中,可以方便地进行数据的备份、恢复和共享。

 2.数据处理

HDFS可以与Hadoop的其他组件(如MapReduce、Spark等)结合使用,进行大规模数据的批处理、实时计算和分析。通过利用HDFS的分布式存储和并行处理能力,可以显著提高数据处理效率和准确性。

3.数据仓库

HDFS可以作为数据仓库的底层存储系统,为数据仓库提供高效、可靠的数据存储服务。通过将数据存储在HDFS中,并结合Hive等SQL引擎进行查询和分析,可以实现高效的数据仓库解决方案。

 

六、总结

HDFS作为Hadoop生态中的核心组件之一,提供了可靠、高效、可扩展的数据存储服务。通过深入了解HDFS的原理、架构、特性和实战应用,我们可以更好地利用HDFS来处理和分析大数据,为企业创造更大的价值。同时,随着大数据技术的不断发展,HDFS也在不断地演进和完善,相信未来HDFS将在大数据领域发挥更加重要的作用。

  • 41
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值