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/

  • 相关阅读:
    对于使用secureFX上传文件到centos7 的时候,以及不同的用户解压文件,对于文件操作权限的实验
    搭建分布式hadoop环境的前期准备---需要检查的几个点
    mvc EF
    查询数据库的相关信息
    SQL中PIVOT 行列转换
    sql server 取日期
    c# 类型拷贝
    EF没有同步更新(转)
    怎么计算两个经纬度之间的距离.
    简单日志记录
  • 原文地址:https://www.cnblogs.com/gw811/p/4626882.html
Copyright © 2011-2022 走看看