HDFS 架构剖析

news2024/11/27 15:29:14

目录

一、HDFS 架构整体概述

二、HDFS 集群角色介绍 

2.1 整体概述 

2.2 主角色:namenode 

2.3 从角色:datanode 

2.4 主角色辅助角色: secondarynamenode 

三、HDFS 重要特性

3.1 主从架构 

3.2 分块存储机制

3.3 副本机制 

3.4 namespace 

3.5 元数据管理 

3.6 数据块存储 


 

一、HDFS 架构整体概述

        HDFS 是 Hadoop Distribute File System 的简称,意为:Hadoop 分布式文件系统。HDFS 是Hadoop 核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在HDFS 解决的问题就是大数据如何存储它是横跨在多台计算机上的文件存储系统并且具有高度的容错能力。

        HDFS 集群遵循主从架构(master/slave通常包括一个主节点和多个从节点。在内部,文件分块存储每个块根据复制因子存储在不同的从节点计算机上形成备份。主节点存储和管理文件系统 namespace即有关文件块的信息,例如块位置,权限等;从节点存储文件的数据块。主从各司其职,互相配合,共同对外提供分布式文件存储服务。当然内部细节对于用户来说是透明的。

二、HDFS 集群角色介绍 

2.1 整体概述 

        HDFS 遵循主从架构。NameNode 是主节点,负责存储和管理文件系统元数据信息,包括 namespace 目录结构、文件块位置信息等;  DataNode 是从节点,负责存储文件具体的数据块。两种角色各司其职,共同协调完成分布式的文件存储服务。SecondaryNameNode 是主角色的辅助角色,帮助主角色进行元数据的合并。

2.2 主角色:namenode 

        NameNode 是 Hadoop 分布式文件系统的核心,架构中的主角色NameNode 维护和管理文件系统元数据,包括名称空间目录树结构、文件和块的位置信息、访问权限等信息。基于此,NameNode 成为了访问 HDFS 的唯一入口

        NameNode 内部通过内存磁盘文件两种方式管理元数据。其中磁盘上的元数据文件包括Fsimage 内存元数据镜像文件和 edits logJournal)编辑日志。在 Hadoop2 之前,NameNode 是单点故障。Hadoop 2 中引入的高可用性。Hadoop 群集体系结构允许在群集中以热备配置运行两个或多个 NameNode

2.3 从角色:datanode 

        DataNode 是 Hadoop HDFS 中的从角色,负责具体的数据块存储。DataNode 数量决定了HDFS 集群的整体数据存储能力。通过和 NameNode 配合维护着数据块。

2.4 主角色辅助角色: secondarynamenode 

        除了 DataNode 和 NameNode 之外,还有另一个守护进程,它称为 secondary NameNode。充当 NameNode 的辅助节点,但不能替代 NameNode

        当 NameNode 启动时,NameNode 合并 Fsimage 和 edits log 文件以还原当前文件系统名称空间。如果 edits log 过大不利于加载,Secondary NameNode 就辅助 NameNode NameNode 下载 Fsimage 文件和 edits log 文件进行合并

三、HDFS 重要特性

3.1 主从架构 

        HDFS 采用 master/slave 架构。一般一个 HDFS 集群是有一个 Namenode 和一定数目的 Datanode 组成Namenode 是 HDFS 主节点,Datanode 是 HDFS 从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。

3.2 分块存储机制

        HDFS 中的文件在物理上是分块存储(block的,块的大小可以通过配置参数来规定,参数位于 hdfs-default.xml 中:dfs.blocksize。默认大小是 128M134217728)。

3.3 副本机制 

        文件的所有 block 都会有副本。每个文件的 block 大小(dfs.blocksize)和副本系数(dfs.replication)都是可配置的。副本系数可以在文件创建的时候指定,也可以在之后通过命令改变。

默认 dfs.replication 的值是 3,也就是会额外再复制 份,连同本身总共 份副本。

3.4 namespace 

        HDFS 支持传统的层次型文件组织结构。用户可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。

        Namenode 负责维护文件系统的 namespace 名称空间,任何对文件系统名称空间或属性的修改都将被 Namenode 记录下来。

        HDFS 会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data

3.5 元数据管理 

在HDFS中,Namenode 管理的元数据具有两种类型:

  • 文件自身属性信息

  文件名称、权限,修改时间,文件大小,复制因子,数据块大小。

  • 文件块位置映射信息

  记录文件块和 DataNode 之间的映射信息,即哪个块位于哪个节点上。

 

3.6 数据块存储 

        文件的各个 block 的具体存储管理由 DataNode 节点承担。每一个 block 都可以在多个 DataNode 上存储。

下一篇文章:Hadoop 3.2.4 集群搭建详细图文教程_Stars.Sky的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/976446.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于React实现:弹窗组件与Promise的有机结合

背景 弹窗在现代应用中是最为常见的一种展示信息的形式,二次确认弹窗是其中最为经典的一种。当我们在React,Vue这种数据驱动视图的前端框架中渲染弹窗基本是固定的使用形式。 使用方式:创建新的弹窗组件,在需要弹窗的地方引用并…

百叶帘系统内置于玻璃内,分为手动和电动两种控制方式

百叶帘系统是一种在餐厅包厢隔断墙中常见的控制窗帘或遮光帘的方式。这种系统通常分为手动和电动两种控制方式,具体选择取决于您的需求和预算。 1. 手动控制:手动控制是传统的方式,通过手动操作绳子或杆来打开或关闭百叶帘。这是一种经济实惠…

力扣刷题49 字母 异位词分组

目录 题目描述代码实现基本实现优化代码 基础知识回溯集合 参考 题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”…

19|返璞归真:王维佛系建议,万事不如吃好睡好

好诗相伴,千金不换。你好,我是天博。 今天我们的主题仍然是“见自己”。其实,诗词里并不是只有诗情画意的春花秋月,也充满了实实在在的人间烟火。这些现实的生活对我们平常人来说,往往比春花秋月更有借鉴意义。我们今…

基于Java+SpringBoot+Vue前后端分离在线考试系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

蝶形运算法

蝶形运算法是一种基于FFT(Fast Fourier Transform)算法的计算方法,其基本思想是将长度为N的DFT分解成若干个长度为N/2的DFT计算,并通过不断的合并操作得到最终的结果。该算法也称为“蝴蝶算法”,因为它的计算过程中需要…

未加载Qt6Core.pdb

编译代码发现未加载.pdb。 问题是Qt6的bin目录下也没有.pdb文件啊? 有两种方法,一是把Qt路径放到环境变量下,这样系统就能找到Qt6需要的依赖项。 二是在生成目录下找到编译好的.exe文件,然后调用windeployqt.exe为其生成依赖项&…

通用策略06丨横截面因子在期货中的应用(2)

量化策略开发,高质量社群,交易思路分享等相关内容 大家好,今天为大家带来2023年度通用系列的收官之作——再议横截面因子。 在通用05策略中,我们以一种很简单的框架和复现方式,为大家展示了横截面因子在期货中的运用展…

5. 本地方法接口和本地方法栈

5.1. 什么是本地方法? 简单地讲,一个Native Method是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一…

云贝餐饮连锁独立版 v2.7.9+公众号+小程序端+全插件(免授权前端线传)安装教程

云贝餐饮连锁版主要基于目前比较流行小程序生态下的自助点单系统,一款非常不错的餐饮外卖小程序。播播资源测试云贝餐饮连锁独立版 v2.7.9该版本与上一版一样永久授权版,增加了小程序前端线传功能(通过其他第三方上传)&#xff0c…

jdk17下netty导致堆内存疯涨原因排查 | 京东云技术团队

背景: 介绍 天网风控灵玑系统是基于内存计算实现的高吞吐低延迟在线计算服务,提供滑动或滚动窗口内的count、distinctCout、max、min、avg、sum、std及区间分布类的在线统计计算服务。客户端和服务端底层通过netty直接进行tcp通信,且服务端…

JS判断对象是否发生变化,常用于监听页面表单是否修改并给出保存提示

本文主要封装方法,实现用户离开表单编辑页面时弹出提示框,若表单数据发生变化,则提示用户是否保存当前页面的信息,如图: 封装方法: /*** 比较俩个对象之间的差异,项目中多处用到监听表单数据是…

配电室能耗数据采集系统

随着社会的快速发展,能源消耗逐年增加,能源问题已成为制约我国经济社会发展的瓶颈。在此背景下,节能减排、绿色发展成为国家战略,而配电室作为电力系统的重要组成部分,其能耗管理对整个电力系统的能效有着举足轻重的影…

SQL sever中表数据管理

目录 一、插入数据: 二、更新数据: 三、删除数据: 四、清空数据: 4.1使用DELETE语句: 4.2 使用TRUNCATE TABLE语句: 4.3区别: 4.3.1DELETE FROM: 4.3.2TRUNCATE TABLE&am…

正文—态路小课堂丨光模块安装与拆卸的小指南

点击蓝字 | 关注我们 TARLUZ态路 光模块通常由非常精密的光学元件组成,对于光信号的接收和发射非常敏感。静电和光口污染对光模块信号传输有着很大的影响。静电会导致光模块器件的性能降低、寿命缩短,可能会造成不可逆的损坏。光口污染会导致光信号的衰…

“海葵”强势来袭,台风天如何做好防涝排水工作?

中央气象台9月4日06时发布台风黄色预警:今年第11号台风“海葵”(HAIKUI)的中心已于昨天(9月3日)晚上7点50分前后移入台湾海峡南部海面。 预计,“海葵”将以每小时10公里左右的速度向西偏北方向移动&#xf…

提振印度市场?iPhone15首发之一,富士康工厂将提前生产iPhone15

根据金融时报的报道,苹果公司计划将印度作为其新款 iPhone 15 的首发市场之一。以往的经验显示,印度市场通常会比其他市场延迟一个月左右才能上市,但今年情况将发生变化。据报道,位于印度东南部城市金奈的富士康工厂计划在9月中旬…

浅析安防视频监控平台EasyCVR视频融合平台接入大量设备后是如何维持负载均衡的

安防视频监控平台EasyCVR视频融合平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备…

qemu/kvm学习笔记

qemu/kvm架构 cpu虚拟化的示例 Reference: kvmtest.c [LWN.net] 主要步骤: QEMU通过/dev/kvm设备文件发起KVM_CREATE_VM ioctl,请求KVM创建一个虚拟机。KVM创建虚拟机相应的结构体,并为QEMU返回一个虚拟机文件描述符QEMU通过虚拟机文件描述…

【每日一题】54. 螺旋矩阵

54. 螺旋矩阵 - 力扣(LeetCode) 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5…