zoukankan      html  css  js  c++  java
  • 大数据:Hadoop(HDFS 的设计思路、设计目标、架构、副本机制、副本存放策略)

    一、HDFS 的设计思路

     1)思路

    • 切分数据,并进行多副本存储;

     2)如果文件只以多副本进行存储,而不进行切分,会有什么问题

    • 缺点

    1. 不管文件多大,都存储在一个节点上,在进行数据处理的时候很难进行并行处理,节点可能成为网络瓶颈,很难进行大数据的处理;
    2. 存储负载很难均衡,每个节点的利用率很低;

    二、HDFS 的设计目标

    • Hadoop Distributed File System(HDFS):源于Google 的 GFS 论文;
    • 设计目标

    1. 分布式存储:根据需要,水平横向增加节点;
    2. 运行在普通廉价的硬件上
    3. 易扩展、为用户提供性能不错的(如果廉价的硬件损坏,不会给用户带来严重损失)文件存储服务;

    三、HDFS架构

    • 一般一个 HDFS 的集群,由一个 NameNode(NN) 和 多个 DataNodes(DN) 组成;一般 NameNode 和 DataNodes 部署在不同的节点上;
    • NameNode

    • 管理文件系统的 namespace,以及客户端对文件的访问;
    • 功能:

    1. 负责客户端请求的响应;
    2. 负责元数据(文件的名称、副本系数、Block存放的DataNode)的管理;
    • DataNodes

    • 操作bolck的;一般每个节点有一个 DataNodes(集群上有几个节点,就对应有几个DataNodes,也一个节点也可以运行多DataNodes,不过一般不采用,使用一对一),管理文件应该存储到哪个节点上;
    • 功能:

    1. 存储用户的文件对应的数据块(Block);
    2. 定期向NameNode发送本身及其所有的block信息,健康状况;
    • Blocks 是根据blocksize进行切分的;(blocksize=128M,130M==>128M + 2M)
    • namespaces:操作文件的;打开、关闭、重命名文件,或者重命名目录;
    • 四、HDFS 的副本机制

    • HDFS 支持多层级文件存储(文件夹里有其它文件夹),
    • 对文件系统命名空间做的任何操作,都会被记录到 NameNode 中;
    • 一个文件的所有 Block,除了最后一个Bolck,其它所有Block的大小都是一样的(与 Blocksize 相同);

    • 五、HDFS 的副本存放策略

    •  一般默认存放 3 份副本:也是容错安全考虑
    • 第一个副本默认存放在当前操作的节点上;
    • 第二个副本存放在不同与当前节点所在机架的某一个节点上;
    • 第三个副本存放在与第二个副本相同机架的不同节点上;
  • 相关阅读:
    nextLine() 、nextInt()的跳过问题
    Spring事务管理
    常见web错误码
    connect()函数
    int main(int argc,char*argv[])
    cin.getline函数
    TCP数据报结构以及三次握手(图解)
    TCP报文首部
    strtol函数
    MySQL简介
  • 原文地址:https://www.cnblogs.com/volcao/p/11444679.html
Copyright © 2011-2022 走看看