HDFS体系架构

HDFS体系架构(最全) HDFS 采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。本文将一一介绍各个组成部分的定义、作用。 阅读详情

 

体系架构

  • NameNode
    • HDFS主节点、管理员
    • 接收客户端(命令行、Java程序)的请求:创建目录、上传、下载、删除数据
    • 管理和维护HDFS的日志和元信息
      • 日志文件(edits文件)
        • 二进制文件,记录客户端所有操作,同时体现HDFS的最新状态
        • $HADOOP_HOME/tmp/dfs/name/current
        • 日志查看器(edits viewer):把edits转成文本(XML)格式
        • hdfs oev -i edits_inprogress_0000000000000000107 -o ~/a.xml
      • 元信息(fsimage文件)
        • 记录数据块的位置信息、数据块的冗余信息,不体现HDFS的最新状态
        • $HADOOP_HOME/tmp/dfs/name/current
        • image viewer,把fsimage文件转为文本或者xml
  • DataNode
    • 数据节点
    • 按数据块保存数据库(1.x:64M,2.x:128M)
    • /root/training/hadoop-2.7.3/tmp/dfs/data/current/BP-419062579-192.168.157.111-1535553141546/current/finalized/subdir0/subdir0
    • 数据块冗余度设置原则:一般跟数据节点的个数一样,但是最大不要超过3
    • Hadoop 3.x以后,HDFS纠删码技术,大大的节约存储的空间(节约一半 )
  • SecondaryNameNode
    • 第二名称节点
    • 进行日志信息的合并
    • 由于edits文件记录了最新的状态信息,并且随着操作越来越多,edits就会越大
    • 把edits中的最新信息写到fsimage中
    • edits文件就可以清空
    • 通常和NameNode部署在一台机器上,提高下载速度
    • 什么时候合并?HDFS发出检查点时(checkpoint)
      • HDFS每隔60分钟产生一个检查点(fs.check.period)
      • edits文件达到64M(fs.check.size)

数据传输

  • 数据上传
    • 请求上传数据 Distributed FileSystem.java
    • 创建 DFSClient.java
    • 建立RPC通信
    • 拿到NameNode代理对象NameNodeProxies(HA)
    • 请求创建文件元信息
    • 创建文件元信息
    • 将元信息返回给 Distributed FileSystem
    • 创建输出流 FSDataOutputStream
    • 上传数据到DataNode
    • 根据元信息,水平复制
  • 数据下载
    • 请求
    • 创建
    • 建立RPC通信
    • 请求得到元信息
    • 查找元信息(先查缓存,再查fsimage)
    • 返回元信息
    • 创建输入流
    • 下载数据块
    • 把下载的数据块合成一个文件

高级特性

  • 安全模式
    • 只读,正常运行时off
    • HDFS的自我保护机制,检查数据块副本率
    • 如果冗余度小于设定的副本率(DataNode坏掉),就水平复制
    • 在hdfs-default.xml中设定副本率
  • 快照
    • 全部文件系统或某目录在某时刻的镜像,默认关闭
    • 启用目录的快照功能
    • 创建快照 -createSnapshot 目录 快照名称
    • 用于以下场景
      • 防止用户误操作/备份/测试/灾难恢复
    • 一般不建议使用,因为本来就有冗余,再生成新的冗余,太浪费空间
  • 配额
    • HDFS为每个目录分配的大小空间
    • 名称配额
      • 设置该目录中最多存放的文件(目录)个数
    • 空间配额
      • 设置该目录中最大能够存放的文件大小
  • 回收站
    • 默认禁用
    • 放入/trash
    • 回收站中文件可快速恢复
    • 可设置一个时间,超过后文件自动删除
  • 用户权限管理
    • 功能较弱
    • 建议使用 Hadoop Kerberos

启动过程

  • 网页->Startup Progress
  • Loading fsimage
  • Loading edits
  • Saving checkpoint
  • Safe mode

底层原理

  • RPC(remote procedure call)
    • 远程过程调用(协议)
      • 在客户端调用服务器端的程序
      • 一个框架,调用者和被调用者运行在其中完成通信
      • 调用远程代码,需要实现调用者和被调用者间的连接与通信
      • 基于Client/Server进程间相互通信的一种同步通信形式
      • Client是请求服务的调用者,Server是执行Client的请求而被调用的程序
    • Hadoop用Java实现RPC
      • 客户端
      • 服务器端

MyRPCClient.java

View Code

MyInterface.java

View Code

MyInterfaceImpl.java

View Code

MyRPCServer.java

View Code

 

    

  •  Java动态代理对象
    • 如果一个类的名字有$,表示这是一个代理对象
    • 是一种包装设计模式
    • 可以增强类的功能
    • 应用:数据库连接池
    • newProxyInstance 参数
      • ClassLoader 类加载器
      • Class<?>[ ] 真正对象实现的接口
      • InvocationHandler 实现接口来处理客户端调用

MyBusiness.java

View Code

MyBusinessImpl.java

View Code

TestMain.java

View Code

命令

  • hdfs dfs
  • -ls /:查看所有目录下的文件
  • -ls /data:查看/data下的所有文件
  • -mkdir /data:在hdfs上创建目录/data
  • -cp:拷贝文件
  • -rm:删除文件
  • -get:复制文件到本地

 

hdfs体系架构及分析 hdfs体系架构及分析 HDFS简介 Hadoop Distributed File System(简称HDFS)是Hadoop分布式文件系统。以流式数据访问模式来存储超大文件,运行与硬件的集群之中。 HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。 对外部客户机而言,HDFS就像一个传统的分级文件系统。可 阅读详情

相关推荐

HDFS的体系结构

在HDFS中使用的是主从结构,即一个主节点,多个从节点。 在HDFS中主要包含四部分:Client(Shell命令/API/Java Application)、NameNode、DataNode、SecondaryNameNode。 NameNode节点负责维护DataNode上各个块的metadata以及整个HDFS的目录树结构,并且还会将内存中的块的metadata以及fsimage、edits等持久化文件进行备份,以防宕机时数据丢失。 fsimage文件中保存了整个HDFS中的目录树结构、我们的

QYHuiiQ 1592

HDFS学习笔记

对于每一个数据块,NameNode 节点返回保存数据块的数据节点的地址。当Active NameNode的命名空间发生变化的时候,它会把这个变化通知所有JN,有的JN收到信息,有的JN是没有收到信息的,如果大部分JN进程接到信息,就认为这个事件是可信的,如果少数的JN接到信息,就认为这个信息是错误的,是屏蔽的,对于可信的信息,standby Namenode才会去同步过来,通过JN这种方式,才能保证Standby Namenode和Active Namenode之间有效信息的一个同步。

qw311113qin的博客 4973

HDFS体系结构(NameNode、DataNode详解)

HDFS体系结构(NameNode、DataNode详解)

HDFS架构

①HDFS概念:Hadoop Distributed File System,是Hadoop项⽬的核⼼⼦项⽬,是分布式计算中数据存储管理的基础。⽀持海量数据的存储,允许⽤户将成百上千的计算机组成存储集群,HDFS 可以运⾏在低成本的硬件上,提供⾼吞吐量、⾼容错性的数据访问,⾮常适合⼤规模数据集上的应⽤。②HDFS优缺点:HDFS优点:高容错性(多个副本且副本丢失可快速恢复);处理大数据;高扩展性(动态扩展集群节点);低成本运行;HDFS缺点:不适合低延时的数据访问;不适合存储大量小文件;

qq_57629191的博客 1907

Winform使用TreeView控件实现带复选框的三态树

刚接触c#,项目中用到Treeview实现三态,即选中、未选中、半选中状态,并且要求父子节点选择联动,效果类似下图网上有很多例子,于是研究了一下,结合网上大佬们的例子,所以在这里记录一下。首先新建一个Winform工程拖个TreeView控件,然后运行。。。嗯。。。加点数据吧。private void CreateTree() { TreeNode anime = new TreeNode...

laoyezha的博客 2万+

宏基因组分析|完整分析流程梳理

今天先从最基础的全流程框架说起,无论是刚接触的萌新,还是想查漏补缺的同行,都能找到有用的信息。

weixin_70911870的博客 3166

【Hadoop】HDFS的体系架构

HDFS 采用 Master/Slave 架构。一个 HDFS 集群是由一个 NameNode 和一定数目的 DataNodes组成。其中 NameNode 是一个中心服务器,负责文件系统的名字空间(namespace) 管理以及客户端对文件的访问。集群中的 DataNode 一般是一个节点一个,负责管理它所在节点上的存储。

m0_60511809的博客 3185

Visual Studio Git 使用指南

Visual Studio 2022深度集成了Git功能,提供了直观的图形界面管理源代码。本文详细介绍了VS中Git的使用方法:从环境准备、克隆/创建仓库开始,重点讲解了"Git更改"窗口的日常操作,包括查看修改、暂存文件、提交推送等。同时涵盖了分支管理、查看历史、解决冲突等核心功能,以及储藏、重置等高级操作。文章还提供了实用技巧,如提交规范、频繁提交等最佳实践。VS的Git集成覆盖了日常开发需求,图形界面与命令行可互补使用,适合各层次开发者高效管理代码版本。

guigenyi的专栏 1573

大数据篇--HDFS

文章目录一、准备工作 一、准备工作 首先安装好Zookeeper: 在pom.xml中添加: <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.5</version> &

小强签名设计 的博客 2085

切比雪夫(最小区域法)直线拟合算法

切比雪夫,最小区域法直线拟合

闪电彬彬的博客 3965

从代码层面分析STM32 标准库和HAL库的差异

相当于每个设置都是独立的函数。HAL库将一段代码通过宏定义的方式封装成了一个函数,每个端口的时钟都单独的定义了一个名称,标准库是一个独立的函数,通过参数传递的方式来设置每个端口的时钟。这两个版本的函数本质上操作的还是寄存器,不过HAL库操作的只是BSRR寄存器,而标准库端口置1的时候操作的是BSRR寄存器,端口清0的时候操作的是BRR寄存器。标准库设置端口模式的时候,是在if语句中判断之后直接设置的,而HAL端口模式设置时,却使用了switch语句去设置,说明在HAL库中,端口模式和标准库中发生了改变。

HXYDJ的博客 2万+

HDFS-HDFS体系架构

一、体系架构 HDFS 采用的是master/slaves主从结构模型来管理数据,这种结构模型主要由四个部分组成:Client(客户端)、Namenode(名称节点)、Datanode(数据节点)和SecondaryNamenode(第二名称节点,辅助Namenode)。一个真正的HDFS集群包括一个Namenode和若干数目的Datanode。Namenode是一个中心服务器,负责管理文件系统...

yc_hen的博客 4403

【CANoe16安装教程】亲测安装成功

CANoe16安装教程

qq_45302638的博客 2万+

hdfs体系架构及读写流程

HDFS体系架构 HDFS是一个主/从(Master/Slave)体系架构,由于分布式存储的性质,集群拥有两 类节点NameNode 和DataNode。 NameNode(名字节点):系统中通常只有一个,中心服务器的角色,管理存储和检索 多个 DataNode 的实际数据所需的所有元数据。 DataNode(数据节点):系统中通常有多个,是文件系统中真正存储数据的地方,在 NameNode 统一...

Ezio_Auditore777的博客 408

YOLO26改进策略【YOLO和Mamba】| CVPR 2025:EfficientViM 压缩隐藏状态空间进行通道混合、单头设计减少内存操作,提升目标检测效率与精度

本文记录的是利用模块优化的目标检测网络模型。EfficientViM Block(基于隐藏状态混合器的状态空间对偶性模块) 的设计旨在,提升特征提取效率,同时兼顾全局依赖捕捉与局部细节保留。本文将深入研究的原理,并将其应用到中,通过重构特征提取流程、减少内存绑定操作、融合多阶段特征,增强模型在资源受限环境下的检测性能与速度。EfficientViM: Efficient Vision Mamba with Hidden State Mixer based State Space DualityEfficie

Limiiiing的博客 402

NTC热敏电阻选型快速指南

NTC(Negative Temperature Coefficient Thermistor)负温度系数热敏电阻器,是由锰Mn,镍Ni,铜Cu,一氧化碳Co等烧结而成的氧化物。其电阻值随温度的升高而减小,即具有复温度系数,故被称为负温度系数热敏电阻。本文对热敏电阻的应用场景,结构特点和选型参数进行总结。

fydar的博客 1297

HDFS的体系架构

通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。       HDFS的体系架构 整个Hadoop的体系结构主要是通过HDFS来实现对分布式存储的底层支持,并通过MR来实现对分布式并行任务处理的程序支持。 HDFS采用主从(Maste

AC_great的专栏 1005

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【赵渝强老师】史上最详细:Hadoop HDFS的体系架构

在Hadoop HDFS的体系架构中,包含了三个组成部分。它们分别是:NameNode、DataNode和SecondaryNameNode。下图摘至Hadoop官方的网站,它说明了HDFS的体系架构。【赵渝强老师】HDFS的体系架构。

赵渝强老师优快云博客主页 1341

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

分布式文件系统(HDFS产生背景及定义 HDFS优缺点 HDFS体系架构 HDFS文件块大小)

HDFS产生背景及定义 HDFS优缺点 HDFS体系架构 HDFS文件块大小

rm -rf/坏习惯 2264

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

图文详解HDFS体系架构

写在前面 本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见1000个问题搞定大数据技术体系 解答 HDFS采用了主从结构构建, NameNode为 Master(主),其他 DataNode为 Slave(从)。 文件以数据块的形式存储在 DataNode中。 一个HDFS分布式文件系统的架构如图所示: 连线① NameNode是HDFS系统中的管理者,对 Metadata元数据进行管理。

Shockang的博客 2万+
上一篇: Elasticasearch Web管理工具-Cerebro
下一篇: Kafka网络模型
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值