zoukankan      html  css  js  c++  java
  • HDFS的运行原理

    简介

    HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Google File System)Google 文件系统(中文英文)。

    HDFS特点:

    1、保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认备份3份。

    2、可以支持运行在廉价的机器上。

    3、适合大数据的处理。HDFS将文件分成block(块),默认一个block为64M,将分块后的数据以键值对的方式存储到HDFS上,并将键值对映射到内存中。

    如上图所示,HDFS也是按照Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。

    NameNode:是Master节点,是管理者。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间。

    block保存在那些DataNode节点上(这部分数据并非保存在NameNode磁盘上,它是在DataNode启动时上报给NameNode的,NameNode接收到之后将这些信息保存在内存中)。

    Block的位置信息不回保存在fsimage中。

    Edits文件记录了客户端操作fsimage的日志,对文件的增删改等。

    SecondaryNameNode:分担namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。

    合并fsimage和fsedits文件,然后发送并替换NameNode的fsimage文件,同时自己留下一个副本,

    这个副本可以在NameNode宕机或者坏死后进行部分文件恢复。

    1、可以通过配置fs.checkpoint.period修改合并间隔时间,默认1小时。

    2、也可以配置edits日志文件的大小,fs.checkpoint.size规定edits文件的最大值,来让SecondaryNameNode来知道什么时候该进行合并操作,默认大小是64M。

    合并过程如下:

    DataNode:Slave节点,奴隶,干活的。负责存储client发来的数据块block;执行数据块的读写操作。

    热备份:b是a的热备份,如果a坏掉。那么b马上运行代替a的工作。

    冷备份:b是a的冷备份,如果a坏掉。那么b不能马上代替a工作。但是b上存储a的一些信息,减少a坏掉之后的损失。

    fsimage:元数据镜像文件(文件系统的目录树。)

    edits:元数据的操作日志(针对文件系统做的修改操作记录)

    namenode内存中存储的是=fsimage+edits。

    SecondaryNameNode负责定时默认1小时,从namenode上,获取fsimage和edits来进行合并,然后再发送给namenode。减少namenode的工作量。

    HDFS优缺点:

    ®优点:

    1、高容错性

    数据自动保存多个副本

    副本丢失后,自动恢复

    2、适合批处理

    移动的计算和操作

    数据位置暴露给计算框架

    3、适合大数据处理

    GB、TB、PB甚至更大

    百万规模以上的文件数量

    10K+节点

    4、可以构架在廉价的机器上

    通过副本提高可靠性

    提供了容错和恢复机制

    ®缺点:

    1、低延迟数据访问

    2、小文件存取耗资源(占用NameNode内存空间)

    3、并发写入(一个文件只能有一个写入者)、文件不能随机修改(只支持append)

  • 相关阅读:
    git一个项目导入MyEclipse上传到github
    python之列表练习
    python之元组
    python之列表
    python之替换文件内容和修改某行内容
    python之查询员工名单(读取文件,查询文件内容)
    js:函数一
    8.1(java学习笔记)注解(Annotation)
    8.2(java学习笔记)反射
    7.4 (java学习笔记)网络编程之TCP
  • 原文地址:https://www.cnblogs.com/IceandsnowLove/p/IceandsnowLove.html
Copyright © 2011-2022 走看看