zoukankan      html  css  js  c++  java
  • 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存储 和  通信。

  • 相关阅读:
    Servlet编程实例1
    Servlet
    JDBC之代码优化
    JDBC数据库编程
    数据库常识
    数据库基本操作
    STM32CUBEMX入门学习笔记3:HAL库以及STM32CUBE相关资料
    QT入门学习笔记2:QT例程
    爬虫制作入门学习笔记2:[转]python爬虫实例项目大全
    中移物联网onenet入门学习笔记2:中移物联的通信格式
  • 原文地址:https://www.cnblogs.com/echomyecho/p/3251120.html
Copyright © 2011-2022 走看看