HDFS简介

HDFS简介

概念及特点

​ hdfs是一个分布式文件系统,可以将海量的数据存储在不同的机器中,解决了单台机器无法存储超大数据的问题.
​ hdfs是以master-slave形式存在,一个集群存在一个master(namenode)节点和若干个slave(datanode)节点,主节点负责存储元数据信息以及任务分配,从节点则负责存储实际的数据
​ 在hdfs中数据是以块(block)的形式进行存储的,在客户端进行请求存储数据时,主节点会根据数据的大小将数据进行切块,然后将block分别存储在不同的namenode节点上,默认块大小为128M,每个block的副本数量为3.

它具备以下特性:
优点:

  1. 高容错性,安全性
    hdfs是将海量数据存储在不同的节点上,并且每个数据块都是默认的存储三个副本,当某台节点出现故障问题,或者硬盘出现损坏,集群都可以正常工作,并且可以保证数据的完整性
  2. 高扩展性
    当存储数据的容量不够时候,可以通过横向扩展节点的数量来解决集群存储容量的问题,但是不可以无限扩容

缺点:

  1. 不适合低延迟的数据访问,比如毫秒级的数据访问和数据请求
    因为hdfs是通过集群进行存储数据的,在读取数据时可能会使用RPC远程网络请求数据,所以访问的时间比较长一点
  2. 不适合存储大量的小文件
    因为每个文件的元数据信息都会存储在namenode中,如果有大量的小文件存储在hdfs中,会增加namenode的压力,同时也降低的整个集群的存储能力
  3. 不支持并发写文件和文件的随机修改
    一个文件同时只支持一个线程写,文件只可以进行append,支持随机修改

hdfs数据存储机制及主节点和从节点交互机制

存储机制

  1. hfds集群启动的时,datanode会向namenode进行注册,会将容量和数据信息发送给namenode
  2. namenode接收datanode的信息汇报,如果有未记录的数据,则会将该数据的元数据信息进行记录
  3. 客户端发送存储数据请求(school.mp4),name会根据存储数据的大小计算切块的数量,并生成元数据信息,记录每个块的存储位置,块的大小等信息,然后将元数据信息发送给客户端,客户端在根据元数据信息向datanode请求存储
  4. 客户端成功存储数据后,datanode会向namenode汇报存储是否成功
    在这里插入图片描述

主从交互机制

  1. 集群启动datanode会向namenode进行住注册
  2. namenode校验成功后,会返回一个集群id(ClusterId)给datanode,用于识别从节点归属于哪个集群
  3. datanode在接收到ClusterId后,会将数据信息并携带者ClusterId,发送给namenode
  4. 主从节点之间会根据心跳机制,来进行任务的派分和任务的接收,namenode也可以根据心跳机制判断datanode是否存活
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值