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存储 和  通信。

  • 相关阅读:
    数据要求说明书
    详细设计说明书
    《机器学习》西瓜书 课后习题参考答案
    机器学习基础 基本术语
    (转)android UI进阶之仿iphone的tab效果
    (转)android UI进阶之弹窗的使用
    (转) Android UI学习 Tab的学习和使用
    (转) android UI进阶之布局的优化(二)
    名言警句
    php的IP转换成整型函数ip2long()出现负数
  • 原文地址:https://www.cnblogs.com/echomyecho/p/3251120.html
Copyright © 2011-2022 走看看