zoukankan      html  css  js  c++  java
  • HDFS分布式文件系统设计思想

     

    HDFS设计目标

    1)硬件错误是常态,数据保存需要冗余。

    2)数据批量读取,Hadoop擅长数据分析而不是事务处理。

    3)大规模数据集。

    4)简单一致醒模型,降低系统复杂度,文件一次写入多次读取,

     5数据就近原则分配数据节点。

    HDFS体系结构

    NameNode

    DataNode

    SecondayNameNode

    事务日志

    映像文件

     

    NameNode

    文件系统命名空间

    记录每个文件系统数据块在各个DataNode上的位置和副本信息。

    协调Client对文件的访问

    记录命名空间内的改动

    NameNode使用事务日志记录HDFS元数据的变化。使用映像文件存储文件系统的命名空间,文件映射,文件属性等。

     

    DataNode

    负责物理节点的存储管理

    一次写入,多次读取(不修改)。

    文件由数据块(block)组成默认为64MB

    Block应尽量分配在不同的物理节点上。

     

    HDFS读取流程

    Client要访问HDFS上的一个文件

     

    1)NN获取组成这个文件的block位置列表。

    2)更具列表知道存储数据快的dn

    3)访问dn获取数据。

    4)NN并不参与数据实际传输。

     

    HDFS如何保证集群当中的数据存储可靠性

    1)冗余副本

    2)机架策略

    3)心跳机制

    4)安全模式

    5) 快照机制

     

    冗余副本

    Hdfs默认每个block三个副本(不足三分制动),dn启动时,向nn汇报各数据快信息。

     

    机架策略

    集群一般放在不同机架上,

    HDFS“机架感知”

    一般第一个副本存放在上穿文价的本机架上,如果是本集群外提交,则随机挑选磁盘不太满,cpu不太忙的节点存储。

    第二个副本放在与第一个机架不同的节点上,

    第三个副本放在与第二个副本相同的节点上。

    更多副本:随机。

     

    心跳机制

    NN周期从dn接收心跳信息和block报告(3秒一次)

    NN根据block报告验证元数据

    没按时发送心跳(10分钟)的dn则认为已经lost,并copy其上的block到其他DN

     

    安全模式

    NN启动时会经过“安全模式”阶段

    安全模式阶段不会产生写操作,只执行写操作

    次阶段NN收集NN的报告,当block达到最小副本数以上时,会被认

    为是“安全”的, 当block未达到最小副本数时,该块会被复制知道达到安全。

     

    回收站

    删除文件时,将文件放入回收站。

    回收站里文件可以快速恢复。

    当达到一定阀值时,就被彻底删除,释放占用block

     

    快照

    支持某一时间点的映像,需要时是数据重返这个时间点。





  • 相关阅读:
    移动应用跨平台之旅
    ReactNative之坑爹的在线安装
    关于拆箱装箱引发的类型转换报错
    Unity HDR (高动态范围 )
    Instruments如何看Mono内存分配
    Unity编辑器崩溃大全
    Unity3D获取手机存储空间
    关于构建AssetBundle哈希冲突的问题
    关于UnityWebRequest的超时讨论
    Wwise音频插件介绍
  • 原文地址:https://www.cnblogs.com/kxgdby/p/1faccacd3a30fab27af5b7ff60cfeb52.html
Copyright © 2011-2022 走看看