zoukankan      html  css  js  c++  java
  • Hadoop的HDFS概述

    HadoopHDFS

    HDFS设计思想

      将数据存储到若干台单独的计算机上。

    HDFS特点

    1.存储超大文件

    2.廉价硬件之上

    3.一次写入,多次读取

    HDFS架构

    1.唯一的NameNode,唯一的SecondaryNameNode,都运行在主节点(master)

    2.大于等于“1”个DataNode,运行在从节点(slave

    3.所有的数据均存放在DataNode里面

    4.可以有若干个客户端(Client

    HDFS

      默认为128 MB,小于一个块大小的文件不会占据整个块的空间。

    HDFSNameNode

      HDFS的“大脑”,运行在master(主节点)中,唯一,掌握整个文件系统的目录树,以及目录树中的所有文件和目录。目录树被存储在FSImageEdit Log中。FSImageHDFS元数据的完整快照(Snapshot)。每次NameNode启动的时候,会默认加载最新的FSImage

    HDFSSecondaryNameNode

      NameNode的守护进程,定期合并FSImageEdit Log。在生产环境中,SecondaryNameNode运行在独立的一台服务器上。

    NameNodeSecondaryNameNode交互

    1.SecondaryNameNode引导NameNode滚动更新Edit Log,并将修改文件名为Edit Log.new

    2.SecondaryNameNodeNameNodeFSImageEdit Log复制到SecondaryNameNode的本地检查点中目录。

    3.SecondaryNameNode将本地检查点中的复制而来的FSImageEdit Log.new合并,形成新的FSImage文件,压缩,写入磁盘。

    4.SecondaryNameNode将新的FSImage发送到NameNodeNameNode直接加载和应用该文件。

    5.NameNodeEdit Log.new更名为Edit Log

    HDFSDataNode

      DataNodeHDFS中扮演着从节点(slave)的角色,它在Name Node的指导下完成I/O流任务。所有文件块(block)都存于DataNode中,DataNode存放块的目录为:$(dfs.data.dir)/current下,块的文件名为blk_blkID

    HDFS的容错

      1.心跳机制

      NameNodeData Node维持心跳检测,确保NameNode与健康的DataNode之间的通信。

      2.文件检测

      HDFS会在文件存储的时候记录每个文件校验和,用来之后对文件进行I/O操作提供文件是否完整的检验标准。如果在一个DataNode中,一个文件在读取时的大小与NameNode所记录的该文件的校验和不一致,则判断该文件已经损坏,不再在该DataNode中取文件,从其他DataNode的上面存放的这份文件的副本(replication)。

      3.集群(Cluster)负载均衡

      HDFSNameNode会根据目前现有的DataNode的负载情况,合理分配各个DataNode的负载。

      4.SecondaryNameNode冷备份NameNode上的FSImageEdit Log

      NameNode 的目录树依赖NameNode上的FSImageEdit Log,若NameNode上的FSImageEdit Log丢失或失效,NameNode的目录树功能也将失效,最终导致HDFS分布式文件系统失效。因此,SecondaryNameNode会定期备份FSImageEdit Log,确保NameNode的目录树可用和处于最新状态。

      5.回收站机制

      客户端想HDFS发出删除一个文件的命令,HDFSNameNode并不是马上将该文件从FSImage删除,而是将文件移动到/trash目录,随时可以恢复,直到超过设置的删除时间才会正式被删除。

  • 相关阅读:
    手机号不能为空
    选项卡套选项卡
    可以在一个html的文件当中读取另一个html文件的内容
    价格计算
    v形 加强版
    V形
    生成100个Div
    伪元素::after和::before
    数组中的toString,toLocalString,valueOf方法有什么区别
    JavaScript toLocaleString() 方法
  • 原文地址:https://www.cnblogs.com/wanxi/p/6476251.html
Copyright © 2011-2022 走看看