• HDFS 整体把握


    对于HDFS这样一个分布式文件系统,它的目的是为了实现在多台廉价X86服务器上实现大文件存储。

     image

      HDFS 是仿造GFS 设计出来的。 如图所示, 这种实现方案是一种采取有一个中心节点, 多个数据节点围绕的方式。

    这种设计

    优点: 设计简单

    缺点:  中心节是瓶颈。

    按照这种设计   我们核心要解决的两个是

    1 中心节点(Namenode)和数据节点(datanode)的数据怎么存储?

    2 各个数据节点怎么通信?

    例如我要把一个文件存在这个文件系统上。 假若这个文件命名为 ID0001。

    对于问题1 。 namenode节点需要完成的核心任务如下 存储文件ID001文件名到具体存储这个文件的datanode之间的映射。

                    dantanode需要完成文件名(实际为文件ID)到linux文件系统具体存储路径的映射。 HDFS中采取的是hash表。

          其实问题1的核心是实现K-V的存储。我们能找到的可以现在K-V存储的数据结构方式只有: 链表、 hash表、 红黑树这三种。 hdfs中根据需要和java语言特性,采用的是hash表。

    对于问题二。 实际是网络通信问题。

         根据应用需求

          大体上可以分为两种通信需求,一种是各个节点之间交换元信息  它的特点是逻辑复杂,但数据量不大,hdfs中针对这点需求开发了自己的hadoop ipc

        第二种是真正的数据通信。 它的特点是数据量巨大,hafs采取的是TCP协议。

    对于这样一个主从式的分布式文件系统,我觉得把握住这两方面就可以从整体上看到这个文件系统的样子。 文件系统的两大核心问题就是

        K-V存储 和  通信。

  • 相关阅读:
    TIME_WAIT
    Oracle常用SQL命令
    Linux系统标准化设置:克隆系统后网卡设置、固定IP设置、关闭防火墙和SELINUX、更改主机名
    Linux平台oracle 11g单实例 + ASM存储 安装部署
    Oracle基础维护03-主机、数据库日志收集
    print控制台输出带颜色文字方法
    第二十九节,装饰器
    python 浅析对return的理解
    工欲善其事,必先利其器——持续更新中……
    优秀的学习资源收集:
  • 原文地址:https://www.cnblogs.com/echomyecho/p/3251120.html
Copyright © 2020-2023  润新知