HDFS原理解析

article/2025/10/25 1:00:10
HDFS原理解析

一、HDFS简介

  HDFS为了做到可靠性(reliability)创建了多分数据块(data blocks)的复制(replicas),并将它们放置在服务器群的计算节点中(computer nodes),MapReduce就可以在它们所在的节点上处理这些数据了。

    

1.1 HDFS数据存储单元(block)

  • 文件被切分成固定大小的数据块
    • 默认数据块大小为64M(Hadoop 2.x默认为128M),可配置
    • 若文件大小不足64M,则单纯存为一个block
  • 文件存储方式
    • 按大小被切分成若干个block,存储到不同的节点上
    • 默认情况下每个block都有三个副本
  • Block的大小和副本数通过client端上传文件时设置,文件上传成功后副本数可以变更,block size不可变更  

1.2 Namenode(NN)

  • NameNode主要功能:接收客户端的读写服务
  • NameNode保存metadata信息包括
    • 文件owership和permissions
    • 文件包含哪些块
    • Block保存在哪些DataNode(由DataNode启动时上报)
  • NameNode的metadata信息在启动后会加载到内存
    • metadata存储到磁盘文件名为 fsimage
    • Block的位置信息不会保存到 fsimage
    • edits文件记录了对metadata的操作日志

1.3 DataNode(DN)

  • 存储数据(Block)

  • 启动DN线程的时候回向NN汇报block信息
  • 通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟内没有收到DN的心跳,则认为其已经lost,并copy其上的block到其他的DN

  1.2.1 Block的副本放置策略

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

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

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

    更多副本:随机节点

    

1.4 SecondNameNode

  • 它不是NN的备份(但可以做备份),它的主要工作是帮助NN合并edits log,减少NN启动时间。
  • SNN执行合并时机
    • 根据配置文件设置的时间间隔fs.checkpoint.period 默认3600秒
    • 根据配置文件设置edits log大小 fs.checkpoint.size 规定edits文件的最大值,默认64M

    

1.5 HDFS读流程

  

 1.6 HDFS写流程

  

 1.7 HDFS优缺点:

  优点:

  • 高容错性
    • 数据自动保存多个副本
    • 副本丢失后,自动回复
  • 适合批处理适合大数据处理
    • 移动计算而非数据
    • 数据位置暴露给计算框架
  • 可构架在廉价机器上

  缺点:

  • 低延迟数据访问
    • 比如毫秒级
    • 低延迟与高吞吐率
  • 小文件存取
    • 占用NameNode大量内存
    • 寻道时间超过读取时间
  • 并发写入、文件随机修改
    • 一个文件只能有一个写者
    • 仅支持append

 二、HDFS2.x

2.1 Hadoop 2.0产生背景

  • Hadoop1.0中HDFS和MapReduce在高可用、扩展性等方面存在问题
  • HDFS存在的问题
    • NameNode单点故障,男衣应用于在线场景
    • NameNode压力过大,且内存受限,影响系统扩展性
  • MapReduce存在的问题
    • JboTracker访问压力大,影响系统扩展性
    • 难以支持除MapReduce之外的计算框架,比如Spark、Storm等

  

  • Hadoop 2.x由HDFSMapReduceYARN三个分支构成
    • HDFS:NN Federation、HA
    • MapReduce:运行在YARN上的MR
    • YARN:资源管理系统

2.2 HDFS 2.x特点

  • 解决HDFS 1.0中单点故障和内存受限问题
  • 解决单点故障
    • HDFS HA:通过主备NameNode解决
    • 如果主NameNode发生故障,则切换到备NameNode上
  • 解决内存受限问题
    • HDFS Federation(联邦)
    • 水平扩展,支持多个NameNode
    • 每个NameNode分管一部分目录
    • 所有NameNode共享所有的DataNode存储资源
  • 2.x仅是架构上发生了变化,使用方式不变
  • 对HDFS使用者透明
  • HDFS1.x中的命令和API仍可以使用

 2.3 HDFS 2.x HA

   

  • 主备NameNode
  • 解决单点故障
    • 主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换
    • 所有DataNode同时向两个NameNode汇报数据块信息
  • 两种切换选择
    • 手动切换:通过命令实现主备之间的切换,可以用HDFS升级等场合
    • 自动切换:基于Zookeeper实现
  • 基于Zookeeper自动切换方案
    • Zookeeper Failover Controller:监控NameNode健康状态
    • 并向Zookeeper注册NameNode
    • NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC锁的NameNode变为active

2.4 HDFS 2.x Federation

  • 通过多个NameNode/namespace把元数据的存储和管理分散到多个节点中,使得NameNode/namespace可以通过增加机器来进行水平扩展。
  • 能把单个namenode的负载分散到多个节点中,在HDFS数据规模较大的时候不会降低HDFS的性能。可以通过多个namespace来隔离不同类型的应用,把不同类型应用的HDFS元数据的存储和管理分派到不同的namenode中。

   

2.5 YARN

  • YARN:Yet Another Resource Negotiator
  • Hadoop 2.0新引入的资源管理系统,直接从MRv1演化二来的
    • 核心思想:将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现
    • ResourceManager:负责整个集群的资源管理和调度
    • ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等
  • YARN的引入,使得多个计算框架可运行在一个集群中
    • 每个应用程序对应一个ApplicationMaster
    • 目前多个计算框架可以运行在YARN中,比如MapReduce、Spark、Storm等

2.6 MapReduce On YARN

  • MapReduce On YARN:MRv2
  • 将MapReduce作业直接运行在YARN中,而不是由JobTracker和TaskTracker构建的MRv1中
  • 基本功能模块
    • YARN:复制资源管理和调度
    • MRAppMaster:负责任务切分、任务调度、任务监控和容错等
    • MapTask/ReduceTask:任务驱动引擎,与MRv1一致
  • 每个MapReduce作业对应一个MRAppMaster
    • MRAppMaster任务调度
    • YARN将资源分配给MRAppMaster
    • MRAppMaster进一步将资源分配给内部的任务
  • MRAppMaster容错
    • 失败后,由YARN重新启动
    • 任务失败后,MRAppMaster重新申请资源
posted on 2018-10-24 09:34 ErBing 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/erbing/p/9838216.html


http://chatgpt.dhexx.cn/article/3IomfMn3.shtml

相关文章

HDFS原理与应用

1 HDFS基本介绍 一些基本概念: 在Hadoop中,HDFS是存储层,YARN是调度层,MapReduce是应用层 HDFS是Hadoop分布式文件系统(Hadoop Distributed File System) 分布式文件系统有大容量、高可靠和低成本的特点…

大数据_HDFS原理

目录 一、什么是HDFS 二、HDFS架构角色 三、HDFS工作流程 四、HDFS的优缺点 一、什么是HDFS 1、定义 HDFS即Hadoop分布式文件系统(Hadoop Distributed Filesystem),以流式数据访问模式来存储超大文件,它和现有的分布式文件系…

Hadoop HDFS原理

一、HDFS介绍 HDFS 包括 块、NameNode、DataNode,适用于一次写多次读,不支持并发写。具有通透性、容错性。 HDFS中文件被分成块进行存储,其块默认大小为64M,块是文件存储处理的逻辑单元。用户通过网络访问文件。 NameNode 为管理节…

HDFS原理(超详解)

简介 HDFS(Hadoop Distributed File System )Hadoop 分布式文件系统。是根据 google 发 表的论文翻版的。论文为 GFS(Google File System)Google 文件系统。 HDFS 有很多特点: ① 保存多个副本,且提供容…

hdfs原理详解

hdfs概述 namenode 管理了整个文件系统的元数据 (metadata) 管理众多datanode 对外提供服务的唯一入口 rpc端口:9000 使用文件系统的端口 hdfs://node-1:9000 http端口:50070 hdfs webui页面的端口 查看端口 http://node-1:50070d…

深入分析HDFS原理及读写流程

本文目录 一、架构体系1.1、什么是HDFS?1.2、组成HDFS的各模块作用1.2.1、Client1.2.2、NameNode1.2.3、DataNode1.2.4、SecondaryNameNode 二、数据读写2.1、读数据2.2、写数据 三、优缺点 一、架构体系 1.1、什么是HDFS? HDFS即Hadoop Distributed F…

HDFS原理与实操

文章目录 1 概述1.1 HDFS的优缺点1.2 HDFS组成架构 2 HDFS 读写流程2.1 写数据流程2.2 读数据流程 3 NameNode和SecondaryNameNode原理4 DataNode原理5 HDFS生产调优5.1 HDFS核心参数配置5.2 HDFS集群压测5.3 HDFS白名单与黑名单5.4 HDFS集群扩容及缩容5.5 HDFS存储优化5.6 HDF…

HDFS 原理 详解

前言 一、HDFS的设计原理 二、什么是零拷贝 三、什么是DMA 四、HDFS 架构剖析 HDFS 架构整体概述 HDFS 架构图 五、HDFS 集群角色介绍 1.主角色: namenode 2 从角色:datanode 3 主角色辅助角色: secondarynamenode 六、HDFS重要特性--主从架构 七、HDFS重要特性--分块…

HDFS工作原理

一、HDFS 组成架构 1)NameNode(nn):就是Master,它是一个主管、管理者。 (1)管理HDFS的名称空间 (2)配置副本策略 (3)管理数据块(Bl…

hdfs原理

简介 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Google File System)Google 文件系统。 HDFS有很多特点: ① 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。 (用空间换安全) ② 运行…

Hadoop原理之——HDFS原理

Hadoop 3个核心组件: 分布式文件系统:Hdfs——实现将文件分布式存储在很多的服务器上(hdfs是一个基于Linux本地文件系统上的文件系统) 分布式运算编程框架:Mapreduce——实现在很多机器上分布式并行运算 分布式资源调度…

HDFS架构及原理

HDFS架构及原理 1、HDFS架构及存储 HDFS 采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。一个HDFS集群是由一个NameNode和一定数目的DataNode组成的。NameNode是一个中心服…

HDFS基本原理及数据存取实战

--------------------------------------------------------------------------------------------------------------- [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/51622547 作者&am…

QT的开发学习路线

基础组件;页面布局;通信机制;

QT的学习

QT是利用C进行编写,而QT则是C的实际运用的一种方式。 QT也称GUI------grphical user interface(图形用户接口) 通过图形的方式操纵计算机用户界面 QT的特点以及应用: 1、跨平台(可以在多个平台上进操作&#xff08…

Qt 学习之路 2 --- 读书笔记

一、文章来由 来自豆子老师非常好的一本Qt教程,但是只有网络版,所以用这个做笔记了,不动笔墨不读书嘛~~ 二、读书笔记 1、Qt 学习之路 2(2):Qt 简介 1.1 关于 Qt 的一站式解决 Qt 是一个著名的 C 应用…

Qt学习之路之 QTextEdit 重温

其实,QTextEdit 也有对文本的编辑函数, 剪切,复制,撤销..... 看看下面的这个简单的例子: 控件一目了然。按钮 QTextedit 对象 , 垂直布局。 -------------------------------------------------- 环境&…

QT的进一步学习

QT的进一步学习 来源: ChinaUnix博客  日期: 2006.10.02 17:41 (共有条评论) 我要评论 本文收录了互联…

Qt学习之路之QMovie动画

QMovie类是一个很方便的类,用于播放动画。在刷新页面的时候,可以尝试用QMovie 来实现等待界面。 QMovie类用于显示简单的动画,没有声音。 首先,通过将一个文件的名称或者一个指针传递给QMovie的构造函数构建一个QMovie对象。传递…

QT学习之路-记事本

1、在创建记事本之前先明白有哪些功能: 先创建一个菜单栏,菜单栏是用来装各种功能的一个地方如上图所示,文件、编辑所在的地方为菜单栏, //创建菜单栏QMenuBar *menubarmenuBar();菜单栏创建好后再创建菜单,菜单在菜单…