【DataWhale组队学习】大数据处理导论笔记-2

HDFS是Hadoop的分布式文件系统,设计用于存储大量大数据文件,采用块级存储,通过名称节点管理文件与数据节点的映射。其优点包括硬件兼容性、流数据读写,但不适合低延迟访问和大量小文件存储。系统采用数据冗余以保证容错性和可用性,通常复制因子为3。当节点故障时,系统能自动检测并恢复数据。
摘要由CSDN通过智能技术生成

HDFS

分布式文件系统

分布式文件系统:设计一个比较大的块,是为了最小化寻址开销(磁盘的寻道开销和数据块的定位开销);但是块的大小也不能太大,会导致MapReduce中的Map任务一次只处理一个块中的数据,如果启动的任务太少,反而会影响并行的速度。

物理结构:主节点(Master Node)/名称节点(Namenode)、从节点(Worker Node)/数据节点(DataNode)。

  • **名称节点:**负责文件和目录的创建、删除和重命名等,同时管理着数据节点和文件块的映射关系,因此客户端只有访问名称节点才能找到请求的文件块所在的位置,从而到相应位置读取所需的文件块;
  • **数据节点:**负责数据的存储和读取。在存储时,由名称节点分配存储位置,然后由客户端把数据直接写入相应数据节点;在读取时,客户端从名称节点获得数据节点和文件块的映射关系,然后就可以到相应位置访问文件块。数据节点也要根据名称节点的命令创建、删除数据块和冗余复制。

**HDFS(Hadoop Distribute File System)**是大数据领域一种非常可靠的存储系统,它以分布式方式存储超大数据量文件,但它并不适合存储大量的小数据量文件。

HDFS 优点:

  • 兼容廉价的硬件设备
  • 流数据读写(不支持随机读写)
  • 大数据集
  • 简单的文件模型
  • 强大的跨平台兼容性(Java)

HDFS 局限性:

  • 不适合低延迟数据访问:HDFS主要是面向大规模数据批量处理而设计的,采用流式数据读取,具有很高的数据吞吐率,同时也意味着较高的延迟,因此HDFS不适用于低延迟场合;HBase对于低延迟场合是更好的选择。
  • 无法高效存储大量小文件:①HDFS采用名称节点来管理文件系统的元数据,这些元数据被保存在内存中,使得客户端能够快速获取文件实际保存位置。但一旦要存储大量小文件,名称节点要小号大量内存来保存这些元数据信息,此时元数据检索效率较低,需要花较长时间检索文件实际存储位置。②用MapReduce处理大量小文件时,会产生过多Map任务,线程管理开销大大增加。③访问大量小文件的速度远远低于访问大文件的速度,因为访问大量小文件需要从一个数据节点跳到另一个数据节点。
  • 不支持多用户写入及任意修改文件:HDFS只允许文件有一个写入者,不允许多个用户对同一个文件执行写操作,且只允许对文件进行追加操作,不能执行随机写操作

HDFS体系结构:主从结构模型,一个HDFS集群包含一个名称节点和若干个数据节点。

每个数据节点对周期性的发送心跳信息报告自己的状态,否则会被标记为宕机,不再分配任何I/O请求。

再整个客户端访问过程中,名称节点不参与数据的传输。

HDFS的存储原理

数据冗余存储:为了保证系统容错性、可用性,HDFS采用多副本方式对数据进行冗余存储。

优点:加快数据传输速度、容易检查数据错误、保证数据可靠性。

数据存储策略包括数据存放、数据读取、数据复制

数据存放:HDFS采取以机架为基础的数据存放策略,默认每个数据节点都在不同机架上,这样有个缺点:写入数据时不能充分利用同一机架内部机器之间的带宽。也有优点:数据可靠性高、提高数据读取速度、更容易实现系统内部负载均衡和错误纠正

HDFS默认的冗余复制因子是 3

数据复制:HDFS采用流水线复制策略。

数据错误与恢复

名称节点出错:
  1. 把名称节点上的元数据信息同步存储到其他文件系统中;
  2. 运行一个第二名称节点,当名称节点宕机后,利用第二名称节点中的元数据信息进行系统恢复
数据节点出错:

当数据节点发生故障或网络断网,会被标记为宕机,不再被分配任何I/O请求。

当名称节点检查发现,某个数据的副本数量小于冗余因子,就会启动数据冗余复制,为它生成新的副本。

数据出错:

网络传输磁盘错误等因素都会造成数据错误。客户端在读取到数据后,会采用md5sha1对数据块进行校验,以确保读取到正确的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值