zoukankan      html  css  js  c++  java
  • Hadoop组件----HDFS架构及原理

    学习博客:https://blog.csdn.net/kezhong_wxl/article/details/76573901

    官方文档:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

    一、介绍

    DFS(Distributed File System)分布式文件系统:管理网络中跨多台计算机存储的文件系统。
    Hadoop自带一个HDFS(Hadoop Distributed File System)分布式文件系统。HDFS是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上.

    二、假设与设计

    •   硬件错误:硬件错误是常态而不是异常。HDFS可能由成百上千的服务器所构成,每个服务器上存储着文件系统的部分数据,需要HDFS有错误检测和快速、自动的恢复。-----最核心架构目标
    •   流式数据访问:能够实时的访问数据,运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。HDFS的设计中更多的考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量

    补充:关于数据访问方式,可以参考下面这个博客:

          https://blog.csdn.net/HeatDeath/article/details/78986025

    •   大规模数据集:运行在HDFS上的应用具有很大的数据集。HDFS上的一个典型文件大小一般都在G字节至T字节
    •   简单的一致模型:HDFS应用需要一个“一次写入多次读取”的文件访问模型,一个文件经过创建、写入和关闭之后就不需要改变。
    •   移动计算:一个应用请求的计算,离它操作的数据越近就越高效。HDFS为应用提供了将它们自己移动到数据附近的接口。

    三、主从架构

    有几个概念需要明确:

      Namenode

        管理节点;管理文件系统的命名空间,维护文件系统树及整棵树内的所有文件和目录;记录每个文件中各个块所在的数据节点信息;

        管理文件系统命名空间的主服务器和管理客户端对文件的访问组成;
        NameNode执行文件系统命名空间操作,如打开,关闭和重命名文件和目录。它还确定了块到DataNode的映射.何对文件系统名字空间或属性的修改都将被Namenode记录下来

      Datanode

        工作节点;根据需要存储和检索数据块(受client或namenode的调度),并定期向namenode发送他们所存储的块的列表。

        负责提供来自文件系统客户端的读写请求

      block

        数据库,默认128MB.HDFS上的文件被划分为块大小的多个分块(chunk),作为独立的存储单元。与面向单一磁盘的文件系统不同,HDFS中小于一个块大小的文件不会占据整个块的空间(如:一个1MB的文件存储在一个128MB的块中,文件只使用1MB的磁盘空间,而不是128MB.)

     四、数据复制

       在HDFS中,它将每个文件存储成一系列的数据块,除了最后一个,所有的数据块都是同样大小的,为了容错,文件的所有数据块都会有副本。

    HDFS中的文件都是一次性写入的,并且严格要求在任何时候只能有一个写入者。

      Namenode全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告(Blockreport)。接收到心跳信号意味着该Datanode节点工作正常。块状态报告包含了一个该Datanode上所有数据块的列表。

    知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得
  • 相关阅读:
    Windows抓取密码总结
    PHP一句话简单免杀
    Shiro反序列化利用
    windows绕过杀软添加账户密码
    java基础-操作符
    微信小程序开发笔记(十一)--输入框计数
    微信小程序开发笔记(十)--多选标签效果
    微信小程序开发笔记(九)--单选标签效果
    微信小程序开发笔记(八)--路由跳转
    proxy_pass 代理转发
  • 原文地址:https://www.cnblogs.com/taoHongFei/p/9346250.html
Copyright © 2011-2022 走看看