• 七、HDFS文件系统的存储原理


    1、总结

            之所以把总结放在文件开头,是为了让读者对这篇文章有更好的理解,(其实是因为我比较懒……)

            对于整个HDFS文件系统的存储原理,我们可以总结为一句话,那就是:

    分块+备份

     2、存储结构和问题

    (1)存储方式        

    对于一个比较大文件,我们可以将文件分为好几个部分,存储在不同的服务器节点上,每一个服务器节点,存储文件的一部分。

    (2)造成的问题

            在这种存储模式下,很容易造成文件大小不一的情况,有可能出现a文件大小为1KB,b文件大小为3MB,c文件直接达到5GB的情况,甚至达到TB乃至更高的单位。

    (3)解决方法

            对于这种问题,HDFS文件系统将文件大小设定统一的管理单位,划分为block块,一个block块的大小为256MB,如果1GB的文件存储到HDFS文件系统中,则需要划分出4个block块。

    (4)隐藏问题

            在这种将文件划分为block块的存储模式下,会出现一个“隐藏且致命”的问题,那就是如果存储的某个节点上的某一个block块被删除或者丢失,那应该如何处理?

            此处将文件划分为9个block块,如果丢失一个block块就会导致文件出现错误,无法使用,如果对于一个特别大的文件,我们将这个文件划分为10000个block块,那么block块丢失的概率回大大增大,那么文件出现问题的概率也会随之增大。

    3、解决方案

    (1)简单描述

            中国有句古话叫做,“不要把鸡蛋同时放在一个篮子里”,对于每个block文件,我们可以对其尽心备份处理,例如在node1节点里有个名为a的block块,我们可以对a进行备份,分别命名为a_copy1和a_copy2,分别存储在node2和node3节点中。

    (2)图文描述

    (3)具体实现

            我们可以让每一个block块都有两个副本(默认),分别存储在不同的节点之上。

  • 相关阅读:
    接口回调 and 注解
    关与qt 布局 addWidget 会不会自动为子控件设置父对象问题
    2024年蓝牙耳机哪个好?真人实测告诉你如何选购,避免后悔!
    11 Daemonset:忠实可靠的看门狗
    62. 不同路径
    【网络安全】——sql注入之奇淫巧技bypass(持续更新中)
    【Qt基础篇】信号和槽
    算法金 | 统计学的回归和机器学习中的回归有什么差别?
    Leetcode2909. 元素和最小的山形三元组 II
    vue+mysql实现前端对接数据库
  • 原文地址:https://blog.csdn.net/2301_79149013/article/details/134543373