Hadoop之HDFS概述

大数据-HDFS的定义、使用场景、优缺点、组成架构 定义 HDFS(Hadoop Destributed File System)是一个分布式的文件系统,用于存储文件,通过目录树来定位文件 使用场景 适合一次写入,多次读取的场景,不支持文件的修改 优缺点 优点 高容错性 数据自动保存多个副本。它通过增加副本的形式提高容错性 某一个副本丢失后,它可以自动恢复 适合处理大数据 数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据 文件规模:能够处理百万规模以上的文件数量 可构建在廉价机器上,通过多副本机制,提高可靠性 缺点 不适合低延时数据 阅读详情

在这里插入图片描述

Hadoop之HDFS

1 HDFS 概述

随着数据的不断增长,使用单台电脑来存储文件已经无法存储大量的数据,需要分配更多的磁盘,这样
就不好管理数据。因此急需一款系统能够自动管理多台电脑上的文件,其实就是分布式文件管理系统。
HDFS 就是一种分布式文件系统,当然还有GFS(谷歌公司),Lustre(Oracle公司)

1.1 定义

HDFS(Hadoop Distributed File System)是一个分布式文件系统。用于存储文件,通过目录树来定位
文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
HDFS 的使用场景:适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并
不适合用来做网盘应用。

1.2 HDFS 的特点

1.2.1 HDFS 的优势

支持超大文件。超大文件在这里指的是几百M,几百GB,甚至几TB大小的文件。一般来说
Hadoop 的文件系统会存储TB级别或者PB级别的数据。所以在企业的应用中,数据节点有可能有
上千个
检测和快速应对硬件故障。在集群的环境中,硬件故障是常见的问题。因为有上千台服务器连接在
一起,这样会导致高故障率。因此故障检测和自动恢复(心跳机制)是 HDFS 文件系统的一个设
计目标
流式数据访问。HDFS 的数据处理规模比较大,应用一次需要访问大量的数据,同时这些应用一般
都是批量处理,而不是用户交互式处理。应用程序能以流的形式访问数据集。主要的是数据的吞吐
量,而不是访问速度
简化的一致性模型。大部分 HDFS 操作文件时,需要一次写入,多次读取。在 HDFS 中,一个文
件一旦经过创建、写入、关闭后,一般就不需要修改了。这样简单的一致性模型,有利于提高吞吐
量
高容错性。数据自动保存多个副本,副本丢失后自动恢复
可构建在廉价机器上。构建在廉价机器上可以轻松的通过扩展机器数量来近乎线性的提高集群存储
能力

1.2.2 HDFS 的局限性

不能低延迟数据访问。如和用户进行交互的应用,需要数据在毫秒或秒的范围内得到响应。由于
Hadoop 针对海量数据的吞吐量做了优化,牺牲了获取数据的延迟,所以对于低延迟来说,不适合
用 Hadoop 来做
不适合存储大量的小文件。HDFS支持超大的文件,是通过数据分布在数据节点,数据的元数据保
存在名字节点上。名字节点的内存大小,决定了HDFS文件系统可保存的文件数量。虽然现在的系
统内存都比较大,但大量的小文件还是会影响名字节点的性能
不支持多用户写入、修改文件。HDFS的文件只能有一次写入,不支持追加写入(2.0 版本开始支
持追加),也不支持修改。只有这样数据的吞吐量才能大
不支持超强的事务。没有像关系型数据库那样,对事务有强有力的支持

2 HDFS 技术架构

在这里插入图片描述

2.1 HDFS 模块和节点

2.1.1 Block

数据块(Block)是 HDFS 中数据的最基本的存储单位。
当在 HDFS 上存储超大文件时,HDFS 会以一个标准将文件切分成几块,分别存储到不同的节点
上,切出的数据就称为Block。
Block 默认的大小在 Hadoop1.X 中是 64M,在 Hadoop2.X 中是 128M
切块的优点
文件块可以保存在不同的节点上,能够存储超大文件
有利于数据的复制,便于快速备份
有利于数据的分布式计算,即MapReduce操作
在 HDFS 中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间

2.1.2 Namenode

Namenode 用于存储元数据,管理 Datanode 节点的数据
Namenode 会将管理的数据块的数据放入数据块池(Block Pool)中
Namenode 维护HDFS中的元数据信息:
文件的存储路径
文件和 Block 之间关系的信息
Block数量信息
Block 和 Datanode之间的关系信息
元数据格式参照:FileName replicas block-Ids id2host。例如:/test/a.log,3,{b1,b2},[{b1:
[h0,h1,h3]},{b2:[h0,h2,h4]}]
每一条元数据大概是 150B 大小【HDFS不适合存储小文件,元数据信息最终都要加载到内存】
元数据信息存储在内存以及文件中。其中内存中为实时信息,这样做的目的是为了快速查询;磁盘
中的信息不是实时的,存储在磁盘上的目的是为了崩溃恢复
元数据信息会持久化到 Namenode 节点的硬盘上,edit文件中,最终到fsimage文件
存储元数据的目录:dfs/name/current
持久化的文件包括:
fsimage:元数据镜像文件。存储某 Namenode 元数据信息,并不是实时同步内存中的数
据。一般而言,fsimage 中的元数据是落后于内存中的元数据的
edits:操作日志文件,记录了 Namenode 所要执行的操作
在这里插入图片描述
在这里插入图片描述
当有写请求时,Namenode 会首先将该操作先写到磁盘上的 edits 文件中,当 edits 文件写成功
后才会修改内存,内存修改成功后向客户端返回成功信号,而此时 fsimage 中的数据并没有发生
改动。所以,fsimage 中的数据并不是实时的数据,而是在达到条件时再进行更新
在 Hadoop2.X 的集群中,如果存在 SecondaryNamenode,则更新过程需要
SecondaryNamenode 参与;如果不存在SecondaryNamenode,则更新过程发生在Namenode
上
无论是 Hadoop1.X 还是 2.X,当 HDFS 启动,Namenode 会做一次 edits 和 fsimage 合并的操
作。这样做的目的是确保 fsimage 里的元数据更新
Namenode 通过 RPC 心跳机制来检测 Datanode 是否还活着
当 HDFS 启动的时候,Namenode 会将 fsimage 中的元数据信息加载到内存中,然后等待每个
Datanode 向Namenode 汇报自身的存储的信息,比如存储了哪些文件块,块大小,块id等。
如果 HDFS 处于安全模式,只能对外提供读服务,不能提供写服务
在 Hadoop1.X 中,Namenode 存在单点故障问题。在 Hadoop2.X 的伪分布式中,Namenode
依然存在单点故障,但是在 Hadoop2.X 的完全分布式中,可以通过舍弃 SecondaryNamenode
的方式来配置2个Namenode 来保证 Namenode 的高可用(HA)。

2.1.3 Datanode

在HDFS中,数据是存放在Datanode上面的,并且是以Block的形式存储的
存储Block的目录:
dfs/data/current/BP-139455586-192.168.100.101-
1568712565049/current/finalized/subdir0/subdir0
在 HDFS 启动的时候,每个Datanode将当前存储的数据块信息告知Namenode节点
之后,Datanode节点会不断向Namenode节点发送心跳报告,默认是每隔3秒发送一次心跳信息
心跳信息包含这个节点的状态以及数据块信息
如果 Namenode 10分钟都没收到 Datanode 的心跳,则认为其已经lost,那么Namenode会
copy这个Datanode 上的 Block 到其他 Datanode 上 [root@node01 dfs]# tree
在HDFS中,Datanode 上存储的复本 Replication 是多复本策略。默认是三个,我们配置的是 2
个
如果是伪分布式模式,副本只能配置1个,因为如果副本数量 >1,会导致HDFS一致处于安全模式
而不能退出
在这里插入图片描述

2.1.4 SecondaryNamenode

SecondaryNamenode 并不是 Namenode 的热备份,而是协助者帮助 Namenode 进行元数据的
合并,
合并过程可能会造成极端情况下的数据丢失,此时可以从 SecondaryNamenode 中恢复部分数
据,但是无法恢复全部
SecondaryNamenode 是 Hadoop1.X 机制。Hadoop2.X 已经弃用。如果是Hadoop2.X 的伪分布
式,还是会看到 SecondaryNamenode 进程;如果是Hadoop2.X的完全分布式,
SecondaryNamenode已经舍弃,但是如果配置了,依然存在。
合并时机:
根据配置文件设置的时间间隔:
dfs.namenode.checkpoint.period:默认设置为1小时,指定两个连续检查点之间的最大延
迟
根据 Namenode 上未经检查的事务的数量
dfs.namenode.checkpoint.txns:默认设置为1百万。如果尚未达到检查点周期,将强制紧
急检查点。
当HDFS启动时候,也会触发合并
可以通过指令手动合并
合并过程:
达到条件后 SecondaryNamenode 会将 Namenode 中的 fsimage 和 edits 文件通过网络拷
贝过来
同时 Namenode 中会创建一个新的edits.inprogress文件,新的读写请求会写入到这个
edits.inprogress中 hadoop dfsadmin -rollEdits
在SecondaryNamenode中,会将拷贝过来的fsimage和edits加载到内存中,将数据进行合
并,然后将合并后的数据写到一个新的文件fsimage.ckpt中
最后SecondaryNamenode将合并完成的fsimage.ckpt文件拷贝回Namenode中替换之前的
fsimage,同时Namenode再将edtis.inprogress重命名为edits
在这里插入图片描述

.2.2 Block复本放置策略

第一个副本:如果是集群内部提交,那么哪一个DataNode 提交的就将该复本放在哪个节点上。如
果是集群之外的客户端上传的数据,那么就随机选择一台磁盘不太满,cpu不太忙的节点进行存储
第二个副本:放置在第一个复本不同机架的节点上
第三个副本:放置在与第二个副本相同机架的节点上
更多副本:随机节点(哪个节点比较空闲,就放到哪个节点上)

2.3 机架感知策略(了解)

所谓的机架感知策略中的机架指的是逻辑机架而不是物理机架
逻辑机架本质上就是一个映射关系,可以通过shell或者Python脚本指定
可以将不同物理机架上的节点配置在同一个逻辑机架上
习惯上,会将同一个同一个物理机架或者是同一个用户组内的节点配置在同一个逻辑机架上

.2.4 HDFS 写入数据流程

在这里插入图片描述

2.5 HDFS 读取数据流程

在这里插入图片描述

3 HDFS Shell操作

3.1 基本命令

在这里插入图片描述

3.2 其他命令

在这里插入图片描述

Hadoop2.x HDFS源码剖析---概述 一、HDFS概述 基于hadoop2.6 HDFS被设计能够运行在通用硬件上、提供流式数据操作、能够处理超大文件的分布式文件系统。 特点:高容错和高吞吐量、易扩展、高可靠性 HDFS的四个核心模块:namenode节点、datanode节点、客户端、HDFS协议(RPC协议、流式接口协议:HTTP和TCP) 基本概念 1、数据块(block) 数据块是HDFS文件处理(读和写)的最小单元,... 阅读详情

相关推荐

【1】HDFS概述

1. HDFS产出背景及定义 (1)产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。 (2)定义 HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。 HDFS的使用场景:适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应

HDFS概述、HDFS主要技术、HDFS指令、HDFS回收站机制及配置、dfs路径

一.HDFS概述 `  Hadoop Distributed File System----- Hadoop分布式文件存储系统,是hadoop的一个组件,用于数据的存储。 HDFS的总体布局:    HDFS中存在一个名字节点NameNode和多个数据节点DataNode。当用户发送请求后,HDFS会对数据进行切块,然后备份(称为复本replication)并存储到某一个DataNode上,从而...

hongye301的博客 758

C#实现串口通讯程序

1、自动获取本地串口。2、根据传入串口基本属性参数打开串口。3、串口数据的发送接收功能(ASCII和HEX格式)。4、ASCII和HEX相互转换。csharp体验AI代码助手代码解读复制代码[Category("UserProperty")] [Description("轮廓半径")] public int Radius { get => radius;

2401_89221445的博客 1766

HDFS概述

文章目录1. 什么是HDFS2. HDFS基本架构3. 搭建[HDFS]3. 安装hadoop4. hadoop配置文件的配置 etc/hadoop5. namenode的格式化6. 启动hadoop守护进程7. 测试验证安装成果8. Hadoop HDFS运行过程中的错误分析#HDFS的client访问9.指定 Hadoop的启停脚本 1. 什么是HDFS HDFS 全称是Hadoop Distributed File System hadoop分布式(cluser)文件存储系统. 2. HDFS基本

weixin_44809337的博客 7002

图片边界矢量化-地理配准

无地理和投影信息的JPG图片,通过ArcGIS进行地理配准(Georeferencing)完成数字化边界。

u012727861的博客 1907

多模态论文笔记——VQ-VAE和VQ-VAE-2

本文详细介绍VQ-VAE和VQ-VAE-2的原理和训练过程,为后面的dVAE在DALLE中的使用打下坚实的基础。

haopinglianlian的博客 3299

HDFS分布式文件系统概述

HDFS(Hadoop Distributed File System),首先它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多台服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS的适用场景:适合一次写入、多次读出的场景,且不支持文件的修改。适合用于数据分析,不合适作为网盘。

qq_62377885的博客 1513

【00】虹软2023届校招专场 ,计算机类笔试攻略(笔试考试时间、考察范围、笔试难度 等说明)

虹软科技2023校招笔试攻略:三大岗位类别(算法、算法优化、开发)分别于7月24日进行。题型包括选择题、编程题和问答题,其中算法类题目降低难度,编程题改为LeetCode模式。重点考察数学基础、机器学习、编程能力(C/C++/Python)、数据结构和算法优化等。建议根据投递岗位选择问答题,算法优化类注重系统知识和SIMD优化,开发类侧重多线程等实际应用能力。笔试结果将作为校招offer的重要参考。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 276

Hadoop HDFS 概述

HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理带来了很多便利。 背景 随着数据...

小杨的技术博客 2万+

LLM制造业最佳实践:基于大语言模型处理最优化问题,制造业如何更优排产,提升资源利用率

随着制造业数字化转型加速,生产排产优化成为提升企业效率和竞争力的关键环节。大语言模型(LLM)凭借其强大的多模态数据处理、动态优化和智能推理能力,在复杂排产场景中展现出独特优势。谷歌、DeepSeek等机构的研究表明,LLM可通过自然语言交互和生成式决策,突破传统优化算法的局限性。本报告结合半导体行业实践案例与技术路径,系统分析LLM在排产优化中的应用潜力与挑战。

shiter编写程序的艺术 939

【AI Agent】Harness Engineering实践

Harness(运行宿主)是围绕 LLM构建的一套确定性工程系统,其核心职责是:承认模型的固有局限,用可控的工程手段逐一弥补,使"强大但不可靠的推理引擎"变成"可信赖的生产级Agent"模型 是发动机——提供原始动力Agent 是驾驶员——做出决策Harness 是道路、地图、护栏、仪表盘、维修站和质检线——确保行驶安全有序没有Harness,模型越强,可能只是更快地制造混乱。

sysu_lluozh 192

Hadoop的HDFS概述

Hadoop的HDFS HDFS设计思想   将数据存储到若干台单独的计算机上。 HDFS特点 1.存储超大文件 2.廉价硬件之上 3.一次写入,多次读取 HDFS架构 1.唯一的NameNode,唯一的SecondaryNameNode,都运行在主节点(master) 2.大于等于“1”个DataNode,运行在从节点(slave) 3.所有的数据均存放在DataNode里面

Land is there, but I will build another Land 370

Thingsboard PE智慧运维仪表板实例(一)【智慧排口截污实例】

以该实际落地项目为案例,跟着我一起搭建智慧运维大屏!社区版和专业版都通用。本文是致力于快速搭建,所以不会详细去讲Thingsboard的知识点,只讲如何配置和使用部件。

weixin_67440240的博客 1721

1-hadoop概述与hdfs介绍

hadoop hadoop是什么 hadoop是一个分布式系统基础架构,最擅长做海量日志分析,其各个部分用于解决的问题分别是: HDFS:海量数据存储 MapReduce:海量数据的分析 YARN:资源管理调度 Hadoop三大发行版本 Hadoop三大发行版本:Apache、Cloudera、Hortonworks。 Apache版本最原始(最基础)的版本,对于入门学习最好。 Cloudera在...

weixin_43799054的博客 698

【技术科普】破解政务跨系统数据壁垒!亘川一网统管平台多源数据同步技术解析

本文解析亘川一网统管平台多源数据同步技术,针对政务跨系统数据壁垒难题,介绍组件的数据采集、校验、审计留痕等核心能力,结合营商环境项目落地案例,对比传统开发模式差异,讲解开源组件的实践价值,为政务项目开发者提供落地参考。

weixin_67440240的博客 635

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Hadoop HDFS概述

在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。

懒猫的脚印 1909

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Hadoop】HDFS概述

随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS是分布式文件管理系统中的一种。HDFS(Hadoop Distributed File System),它是一个分布式文件系统,用于存储文件,通过目录树来定位文件;由很多服务器联合起来实现其功能,集群中的服务器有各自的角色;适合一次写入,多次读出的场景。

LS154952447的博客 771

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Hadoop之HDFS详细概述

HDFS产出背景及定义 HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。 HDFS定义 HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定...

@小刘同学nice 262

Hadoop框架及HDFS详细概述

HDFS、MapReduce、YARN

分享~ 2283

Hadoop——HDFS设计理论概述及常用命令

HDFS的设计思想: 1.HDFS是通过分布式集群来存储文件(为客户端提供了一个便捷的访问方式,就是一个虚拟的目录结构); 2.文件存储到HDFS集群中去的时候是被切分成block的; 3.文件的block存放在若干台datanode节点上; 4.HDFS文件系统中的文件与真实的block之间的映射关系,由namenode管理; 5.每一个block在集群中会存储多个副本,好处是可以提高数据的可靠性,还可以提高访问的吞吐量。

东方小硕 821

【Hadoop|HDFS篇】HDFS概述

随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS 的使用场景:适合一次写入,多次读出的场景。

2301_80912559的博客 1214
上一篇: Hadoop简介
下一篇: kettle概述
RedSnipers
博客等级 码龄7年 8粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值