zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    【Android Developers Training】 73. 布局变化的动画
    【Android Developers Training】 72. 缩放一个视图
    【Android Developers Training】 71. 显示翻牌动画
    svn更改地址怎么办
    python学习手册
    failed to bind pixmap to texture
    Ubuntu 12.04安装Google Chrome
    svn update 时总是提示 Password for '默认密钥' GNOME keyring: 输入密码
    重设SVN 的GNOME keyring [(null)] 的密码
    Nginx + uWSGI + web.py 搭建示例
  • 原文地址:https://www.cnblogs.com/gw811/p/4626882.html
Copyright © 2011-2022 走看看