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

    原文:https://www.cnblogs.com/volcao/p/11444679.html

    一、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 份副本:也是容错安全考虑
    • 第一个副本默认存放在当前操作的节点上;
    • 第二个副本存放在不同与当前节点所在机架的某一个节点上;
    • 第三个副本存放在与第二个副本相同机架的不同节点上;
  • 相关阅读:
    踩踩踩
    c语言可变参
    C++开发者都应该使用的10个C++11特性
    c++11 条件变量 生产者-消费者 并发线程
    c++11 线程
    C++ 虚函数表解析 继承
    坐标系
    C++ 容器:顺序性容器、关联式容器和容器适配器
    全面深入介绍C++字符串:string类
    做一个懒COCOS2D-X程序猿(一)停止手打所有cpp文件到android.mk
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/13405497.html
Copyright © 2011-2022 走看看