• Hadoop HDFS 架构设计


    HDFS 简介

     Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。 HDFS是高容错性的,可以部署在低成本的硬件之上,HDFS提供高吞吐量地对应用程序数据访问,它适合大数据集的应用程序。它具有以下几个特点:

    1)适合存储非常大的文件

    2)适合流式数据读取,即适合“只写一次,读多次”的数据处理模式

    3)适合部署在廉价的机器上

    但HDFS不适合以下场景(任何东西都要分两面看,只有适合自己业务的技术才是真正的好技术):

    1)不适合存储大量的小文件,因为受Namenode内存大小限制

    2)不适合实时数据读取,高吞吐量和实时性是相悖的,HDFS选择前者

    3)不适合需要经常修改数据的场景

    HDFS 架构

    HDFS的架构如上图所示,总体上采用了Master/Slave的架构,主要有以下4个部分组成:

    1、Client

    2、NameNode

    整个HDFS集群只有一个NameNode,它存储整个集群文件分别的元数据信息。这些信息以fsimage和editlog两个文件存储在本地磁盘,Client通过这些元数据信息可以找到相应的文件。此外,NameNode还负责监控DataNode的健康情况,一旦发现DataNode异常,就将其踢出,并拷贝其上数据至其它DataNode。

    3、Secondary NameNode

    Secondary NameNode负责定期合并NameNode的fsimage和editlog。这里特别注意,它不是NameNode的热备,所以NameNode依然是Single Point of Failure。它存在的主要目的是为了分担一部分NameNode的工作(特别是消耗内存的工作,因为内存资源对NameNode来说非常珍贵)。在紧急情况下,可辅助恢复NameNode。

    4、DataNode

    DataNode负责数据的实际存储,是文件存储的基本单元。当一个文件上传至HDFS集群时,它以Block为基本单位分布在各个DataNode中,同时,为了保证数据的可靠性,每个Block会同时写入多个DataNode中(默认为3);周期性的将所有存在的Block信息发送给NameNode。

     HDFS 架构原则

    1)元数据与数据分离

    2)主/从架构

    3)一次写入多次读取

    4)移动计算比移动数据更划算

    1、元数据与数据分离

    参考文章:

    http://www.open-open.com/lib/view/open1370958803132.html

    http://blog.jobbole.com/34244/

    ZOOM 云视频会议网站:http://www.zoomonline.cn/

  • 相关阅读:
    .NET 并行编程——数据并行
    .NET Unity XML 配置文件(2)
    Java 判断字符串第一位和最后一位,并截取
    Python的datetime模块分析
    springMVC自定义注解实现用户行为验证
    python hex() oct() bin() math 内置函数
    excel表格 xls、xlsx 读取
    Java中对List集合内的元素进行顺序、倒序、随机排序的示例代码
    node服务器中打开html文件的两种方法
    利用 Express 托管静态文件
  • 原文地址:https://www.cnblogs.com/gw811/p/4626882.html
Copyright © 2020-2023  润新知