zoukankan      html  css  js  c++  java
  • 2.HDFS

    一.分布式文件系统

    1.分布式文件系统(Distributed File System)概念

    • 分布式文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。

    2.分布式文件系统特点

    • 分布式文件系统是基于Master/Slave模式,通常提供多个供用户访问的服务器。

    • 分布式文件系统一般都会提供备份和容错功能。

    • 分布式文件系统一般都会基于操作系统的本地文件系统

    • 多用户多应用的并行读写是分布式文件系统产生的根源

    • 分布式文件系统扩充存储空间的成本低廉,提供冗余备份和分布式计算

    3.分布式文件系统结构

    • 分布式文件系统在物理结构上是由计算机集群中的多个节点构成的。

    • 节点分为两类:

      • 主节点(Master Node):也被称为名称节点(NameNode)

      • 从节点(Slave Node):也被称为数据节点(DataNode)

    二.HDFS

    1.HDFS概念

    • HDFS:Hadoop Distributed File System

    • HDFS:是一个使用Java实现的、分布式的、可横向扩展的文件系统

    • HDFS:是Hadoop核心组件

    2.HDFS的体系结构

    • HDFS采用主从结构模型,一个HDFS集群包括一个名称节点和若干个数据节点。

    • 名称节点(NameNode):作为中心服务器,负责管理文件系统的命名空间以及客户端对文件的访问。

    • 数据节点(DataNode):一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求。

    • 名称节点的统一调度下进行数据块的创建、删除和复制等操作。每隔数据节点的数据实际上是保存在本地Linux文件系统中的。

    3.HDFS设计目标

    • 大数据集:用于存储大量文件,不适合小文件存储。

    • 基于廉价的普通硬件,可以容错硬件出错。

    • 简单的一致性模型:HDFS应用程序一次写入,多次读取文件的访问模式。

    • 顺序的数据流访问:适用于处理批量数据,而不适合随机定位访问。

    • 侧重高吞吐量的数据访问,可以容忍数据访问的高延迟。。

    4.HDFS的优点

    • 高容错性:数据自动备份和自动恢复

    • 适合批处理

    • 适合大数据处理

    • 可构建在廉价机器上

    5.HDFS的缺点

    • 不适合低延时数据访问:寻址时间长,适合读取大文件

    • 不适合小文件存取:寻道时间超过文件读取时间

    • 不适合并发写入、文件随即修改:一个文件只能有一个写者,仅支持append(日志)

    6.HDFS存储设计思想

    7.HDFS架构

    8.HDFS核心概念

    • Block:文件被窃氛围固定大小的数据块

      • 默认数据块大小为128MB(hadoop2.x),hadoop1.x为64MB,不到128MB单独存成一个block。

      • 每个文件分成的block被存储在不同的数据节点上。

      • 每个block都有三份副本,相互都是平等的。

    • NameNode(NN):名称节点

      • 概念:用于管理文件系统命名空间的组件

      • 特点:一个HDFS集群只有一个NameNode,一个命名空间,一个根目录,一份元数据。

      • 主要功能:

        • 用于接受客户端的读写服务

        • 保存metadata数据

        • 保存文件的拥有者(ownership)和权限(permissions)

        • 保存文件包含的块信息以及块在数据节点的位置(由数据节点启动时上报)

    • DataNode(DN):数据节点,用于存储数据块block

      • 启动时需要向NN汇报block信息

      • 通过向NN发送心跳保持联系(3秒一次),如果NN在10分钟没有收到DN的心跳,则失去节点,将这个DataNode上存储的Block再备份到其他的节点上保证副本数量。

      • BlockSize是不可变的为128MB,但是副本数量用户可以设置,默认为3个。

      • 对于不足128MB数据是不会占用128MB实际空间

    • 元数据(metadata):

      • 保存在NameNode中,启动后会加载到内存中,用于快速查询

      • 主要包括:

        • fsimage:元数据镜像文件,用于保存文件系统的目录树

        • edits:元数据操作日志,用于对目录树的修改操作,被写入共享存储系统中

    • SecondaryNameNode(SNN):

      • 功能:帮助NN合并edits,减少NN启动时间,不是NN的备份

      • SNN执行的合并时机:

        • 根据配置文件设置的时间间隔fs.checkpoint.period,默认3600秒

        • 根据配置文件设置edits log大小fs.checkpoint.size,规定edits文件的最大值默认是64MB

      • NameNode高可用时没有SNN

      • HA支持动态增加DataNode

     9.Block的副本防止策略

    • 第一个副本:放置在上传文件的DN,如果是集群外提交,则随机挑选一台磁盘不太满、CPU不忙的节点。

    • 第二个副本:放置在与第一个副本不同的机架的节点上。

    • 第三个副本:与第二个副本相同机架的节点。

    • 更多副本:随机节点。

    10.HDFS读文件流程

    11.HDFS写文件流程

  • 相关阅读:
    linux环境变量
    oracle 11g RAC日志分布
    解决Centos下载文件出现”wget: unabl(www.111cn.net)e to resolve host address”
    转载:root用户无法删除文件 rm: cannot remove Readonly file system
    占用端口
    数学小记
    很多问题的解决都是从简单的方式入手不断优化的
    机器学习之算法学习
    机器学习之二分类
    机器学习之模型评估(损失函数的选择)
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12398469.html
Copyright © 2011-2022 走看看