hadoop文件系统HDFS

是什么?

Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。有一定高度的容錯性,而且提供了高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS是海量数据存储解决方案

HDFS设计之初就是针对超大文件的存储的,小文件不会提高访问和存储速度,反而会降低;其次它采用了最高效的访问模式,也就是经常说的流式数据访问,特点就是一次写入多次读取;再有就是它运行在普通硬件之上,即使硬件故障,也就通过容错来保证数据的高可用。

分布式文件管理系统很多,HDFS是其中一种。适用于一次写入多次查询的情况,不支持并发写情况,小文件不合适。

HDFS相关概念

Block 大文件的存储会被分割为多个block进行存储。默认为64MB,每个block会在多个datdnode上存储多份副本 。默认为3份【默认配置可更改】
Namenode 主要负责存储一些metadata信息。主要包括文件目录、block和文件对应关系,以及block和datanode的对应关系
Datanode 负责存储数据,上面我们所说的高度的容错性大部分在datanode上实现

HDFS架构图

在这里插入图片描述

主从结构:

  • 主节点,只有一个:namenode
  • 从节点,有很多个:datanode

namenode负责:

  • 接收用户请求操作
  • 维护文件信息系统的目录结构
  • 管理文件与block之间的关系,block与datanode之间的关系
  • 存储元数据
  • 注意:namenode归根结底要放在磁盘上的,以保证数据的持久性,但是为了提高效率,一般在hadoop运行时放在内存中

什么是元数据
除去文件内容之外的文件数据,如:文件大小、名称等属性

datanode负责:

  • 存储文件内容
  • 文件被分成block存储在磁盘上
  • 为了保证数据安全,文件会有多个副本
  • 维护了block与本地文件的映射关系

为什么

HDFS的四大优点让其成为数据存储的主流选择:

  • 高吞吐量:
    HDFS的每个block分布在不同rack上,在用户访问时,HDFS会计算使用最近和访问量最小的服务器给用户提供。由于block在不同rack上都有备份,所以不再是单数据访问,所以速度和效率是非常快的。另外HDFS可以并行从服务器集群中读写,增加了文件读写的访问带宽。
  • 高容错性:
    上面简单的介绍了一下高度容错。系统故障是不可避免的,如何做到故障之后的数据恢复和容错处理时至关重要的。HDFS通过多方面保证数据的可靠性,多份复制并且分布到物理位置不同的服务器上,数据校验功能、后台的连续自检数据一致性功能,都为高容错提供了可能。
  • 容量扩充:
    因为HDFS的block信息存放到namenode上,文件的block分布到datanode上,当扩充的时候,仅仅添加datanode数量,系统可以在不停止服务的情况下作扩充,不需要人工干预
  • 低成本:
    可以通过普通机器组成的服务器集群来分发及处理数据。这些服务群总计可达数千个节点。

缺点

  • 低延迟数据访问
    比如毫秒级
    低延迟与高吞吐率
  • 小文件存取
    占用namenode大量内存
    寻道时间超过读取时间
  • 并发写入、文件随机修改
    一个文件只能有一个写者(不能够修改)
    仅支持append

怎么做

-help [cmd] 显示命令的帮助信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
化。 相似点: 1. HDFS和GFS都是分布式文件系统,用于存储和处理海量数据。 2. 它们都使用了类似的数据块划分和分布式存储的技术,将大文件分成多个数据块并在多个节点上存储,保障数据的可靠性和可用性。 3. 它们都使用了主从架构的设计,其中一个主节点负责处理元数据,多个从节点负责存储和处理数据。 改进点: 1. HDFS相对于GFS来说,更加注重可靠性,例如增加了数据块复制机制,以防止数据丢失。 2. HDFS对于大量小文件的处理效果更好,采用了一些优化策略来提高小文件的访问效率。 3. HDFS增加了一些用户友好的功能,如通过Web界面来查看和管理文件系统。 4. HDFS支持多种不同数据访问方式,如Hive、Pig等,使得数据处理更加灵活和高效。 优化: 在高可用性方面,Hadoop系统可能采取以下措施: 1. 增加主节点的冗余,确保主节点的高可用性。 2. 将从节点的数据块复制数量增加到3个以上,以提高数据的可用性。 3. 引入ZooKeeper等分布式协调服务,实现主从节点的高可用性切换。 在高可扩展性方面,Hadoop系统可能采取以下措施: 1. 增加节点数量,以提高系统的处理能力。 2. 采用水平扩展的方式,增加节点时不需要对整个系统进行重构。 3. 优化数据块的分布策略,使得数据块在各节点上的存储均衡,提高系统的处理效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值