HDFS详解(Hadoop)

news/2024/5/18 11:52:05

Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)是 Apache Hadoop 生态系统的核心组件之一,它是设计用于存储大规模数据集并运行在廉价硬件上的分布式文件系统


1. 分布式存储:

  • HDFS 将文件分割成若干块(Block),并将这些块分布式地存储在集群中的多个节点上。默认情况下,每个块的大小为 128 MB(可配置),并且每个块都会被复制到多个节点上以实现容错性。

  • 分布式存储的优势在于可以有效地利用集群中的所有节点存储空间,并且通过数据的复制和容错机制,提高了数据的可靠性和可用性。

在这里插入图片描述
在这里插入图片描述


2. 主从架构:

  • HDFS 采用主从架构,包括一个 NameNode 和多个 DataNode 组成。NameNode 负责管理文件系统的命名空间和存储元数据信息,而 DataNode 负责存储实际的数据块。
  • NameNode 记录了文件的目录结构、文件与数据块的映射关系以及数据块的复制情况等元数据信息DataNode 负责存储数据块,并向 NameNode 定期汇报数据块的状态。
    在这里插入图片描述

3. 容错性和可靠性:

  • HDFS 提供了多种容错机制来确保数据的可靠性和一致性。其中,数据的复制是最重要的机制之一,每个数据块默认会被复制到集群中的多个节点上
  • 当某个节点发生故障或数据损坏时,HDFS 可以通过复制的数据块在其他节点上恢复数据,从而保证数据的完整性和可靠性。
    在这里插入图片描述

4. 高吞吐量:

  • HDFS 的设计目标之一是实现高吞吐量的数据访问。为了实现这一目标,HDFS 采用了批量读写和数据本地化等策略,尽可能地减少了网络传输的开销。
  • 此外,HDFS 还支持数据流式处理和数据并行处理等特性,可以满足大规模数据处理和分析的需求。

5. 数据一致性:

  • HDFS 采用了一致性模型,确保了数据的一致性和正确性。在数据写入和读取过程中,HDFS 会维护一致性语义,确保用户能够看到最新的数据内容。
  • 此外,HDFS 还支持一些一致性保证,例如数据块的写入顺序保证等,以确保数据的一致性和可靠性。

6.使用场景

6.1适宜场景

  1. 大数据分析:HDFS 为存储大规模数据提供了可靠的基础,适用于各种大数据分析任务,如数据挖掘、机器学习、统计分析等。通过 Hadoop MapReduce 或其他大数据处理框架,可以对存储在 HDFS 上的数据进行高效的分布式计算和分析。

  2. 日志处理:许多互联网和移动应用生成大量的日志数据,HDFS 可以作为存储这些日志数据的平台。通过将日志数据写入 HDFS,可以轻松地进行日志分析、用户行为分析、系统性能监控等任务。

  3. 数据仓库:HDFS 可以作为数据仓库的底层存储系统,用于存储结构化和非结构化的数据。结合数据仓库解决方案,如 Apache Hive、Apache HBase 等,可以实现数据的高效查询、数据仓库建模和数据集成等功能。

  4. 实时数据处理:尽管 HDFS 本身不适合存储实时数据,但可以与其他实时数据处理系统集成,如 Apache Kafka、Apache Spark Streaming 等。通过将实时数据写入 HDFS,并结合实时处理系统进行流式处理,可以实现实时数据分析和实时报告生成等应用。

  5. 备份和归档:由于 HDFS 提供了数据的可靠性和容错性,因此可以将其用作备份和归档的存储解决方案。通过将数据备份到 HDFS,并定期进行数据归档,可以确保数据的安全性和可用性。

  6. 数据湖:HDFS 可以作为数据湖(Data Lake)的核心存储,用于存储各种类型和格式的数据。结合数据湖解决方案,如 Apache Atlas、Apache Ranger 等,可以实现数据的统一管理、数据治理和数据安全等功能。


6.2不适宜场景

  1. 小型数据集:HDFS 设计用于存储大规模数据集,如果数据规模相对较小,使用 HDFS 可能会带来不必要的复杂性和开销。对于小型数据集,传统的文件系统或云存储服务可能更为合适。

  2. 低延迟要求:HDFS 优化了数据写入和读取的吞吐量,但并不适合对低延迟有极高要求的应用场景。因为 HDFS 不支持像传统文件系统那样的低延迟数据访问。

  3. 频繁的小文件操作:HDFS 的设计是为了存储大型数据文件,而不是大量小文件。如果应用需要频繁地处理大量小文件,那么 HDFS 的元数据操作和数据复制可能会成为性能瓶颈。

  4. 高度动态的数据访问模式:HDFS 更适合于批处理和长期存储,对于频繁变化的数据或需要快速更新的数据集,HDFS 可能不是最佳选择。因为 HDFS 的设计目标是高可靠性和一致性,而不是频繁变化的数据更新。

  5. 需要原子性操作和事务支持:HDFS 不支持原子性操作和事务处理,因此不适合需要强一致性和事务支持的应用场景。对于此类需求,应该选择支持事务处理的分布式数据库或存储系统。

  6. 不需要容错性和数据复制的场景:如果应用对数据的容错性和复制没有特别要求,或者数据可以通过其他手段进行备份和保护,那么使用 HDFS 可能会带来不必要的复杂性和成本。

在这里插入图片描述


http://www.mrgr.cn/p/60615831

相关文章

【AI开发:音频】二、GPT-SoVITS使用方法和过程中出现的问题(GPU版)

1.FileNotFoundError: [Errno 2] No such file or directory: logs/guanshenxxx/2-name2text-0.txt 这个问题中包含了两个: 第一个:No module named pyopenjtalk 我的电脑出现的就是这个 解决:pip install pyopenjtalk 第二个&#xff1a…

Elasticsearch进阶篇(三):ik分词器的使用与项目应用

ik分词器的使用 一、下载并安装1.1 已有作者编译后的包文件1.2 只有源代码的版本1.3 安装ik分词插件 二、ik分词器的模式2.1 ik_smart演示2.2 ik_max_word演示2.3 standard演示 三、ik分词器在项目中的使用四、ik配置文件4.1 配置文件的说明4.2 自定义词库 五、参考链接 一、下…

MIMO-UNet复现,DeepRFT复现及总结

最近复现了去模糊网络MIMO-UNet及变体DeepRFT,并以此文做一个总结: 复现MIMO-UNet部分: 1.通过上一篇博文,我们已经知道了MIMO-UNet网络的大致组成结构 2.通过源网络的main.py文件,我们可以知道该网络间隔100轮保存一…

AI助力科研创新与效率双提升:ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写

2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在…

Windows 安装 A UDP/TCP Assistant 网络调试助手

Windows 安装 A UDP/TCP Assistant 网络调试助手 0. 引言1. 下载地址2. 安装和使用 0. 引言 需要调试一个实时在线聊天程序,安装一个UDP/TCP Assistant 网络调试助手,方便调试。 1. 下载地址 https://github.com/busyluo/NetAssistant/releases 2. 安…

Mac多媒体播放器 Movist Pro v2.11.4中文激活版下载

Movist Pro for Mac是一款专业的媒体播放器,特别为Mac用户设计。它不仅界面简洁美观,而且功能强大,能满足用户各种播放需求。 Movist Pro v2.11.4中文激活版下载 首先,Movist Pro for Mac支持多种媒体文件的播放,包括视…

罗尔(Rolle)中值定理

introduce 罗尔(Rolle)中值定理是微分学中一条重要的定理,是三大微分中值定理之一,其他两个分别为:拉格朗日(Lagrange)中值定理、柯西(Cauchy)中值定理。definition 若\(f(x)\)满足下列条件:在闭区间\([a,b]\)连续在开区间\((a,b)\)可导\(f(a)=f(b)\)则必有 \(\xi\) 属于\(…

Redis入门到通关之Redis数据结构-List篇

文章目录 ☃️概述☃️数据结构☃️源码☃️其他 欢迎来到 请回答1024 的博客 🍓🍓🍓欢迎来到 请回答1024的博客 关于博主: 我是 请回答1024,一个追求数学与计算的边界、时间与空间的平衡,0与1的延伸的后端…

【NLP】大语言模型基础之GPT

大语言模型基础之GPT GPT简介1. 无监督预训练2. 有监督下游任务微调 GPT-4体系结构1. GPT-4的模型结构2. GPT-4并行策略3. GPT-4中的专家并行GPT-4的特点 参考连接 以ELMo为代表的动态词向量模型开启了语言模型预训练的大门,此后,出现了以GPT和BERT为代表…

【Linux学习】Linux进程(二)

文章目录 📕查看进程🚀/proc目录🚀cwd与exe 📕改变进程的工作目录🚀chdir指令 📕vim卡住了怎么解决 本篇文章接着【LInux进程(一)】继续编写。 📕查看进程 &#x1f68…

《统计学习方法》 第4章 朴素贝叶斯法

文章目录 前言一、朴素贝叶斯法二、朴素贝叶斯法的学习和分类三、朴素贝叶斯算法四、贝叶斯估计总结 前言 本文只要记录一些书中的一些小知识点,挑一些本人认为重要的地方进行总结。 各位道友!道长(zhǎng) 道长(chǎng) 一、朴素贝叶斯法 朴素贝叶斯…

最新AI创作系统ChatGPT网站源码Midjourney-AI绘画系统,Suno-v3-AI音乐生成大模型。

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GPT…

用于车载T-BOX汽车级的RA8900CE

用于车载T-BOX等高精度计时的汽车级时钟模块RTC:RA8900CE.车载实时时钟芯片RA8900CE内置32.768Khz的晶体,实现年、月、日、星期、小时、分钟和秒精准计时。RA8900CE满足AEC-Q200认证,内置温补功能,保证实时时钟的稳定可靠,功耗低至…

c++ - 模板(一)

文章目录 一、函数模板 一、函数模板 1、概念 函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定 类型版本。 2、原理 函数模板是一个蓝图,它本身并不是函数,是编译器用…

ADOP带您科普:精准分配/稳定传输:光纤耦合器的未来

光纤自环器,也称为光模块自环测试回路器,用于测试系统或网络系统中的信号回传。通过回传信号(主要是成对连接TX发射端到RX的接收端一侧),可以检测网络链路中各种潜在的异常。 让我们深入了解一下这个设备的作用和分类&…

Spring Boot 的文件配置

SpringBoot的配置文件,有三种格式 1.properties 2.yaml 3.yml(yaml的简写) 这里主要介绍1和3格式的。 在项目中,同时存在properties和yml配置文件, properties的优先级更高 同时存在时,两个文件都生效 如果两个文件中,都包含同一个配置,以properties为主。 properties的配置…

oracle 12c+ max_string_size参数

一个客户的数据库版本是19.3,在做数据库复制的时候,目标端报错了,查看了一下问题发现表的字段长度有不对,在12c以前我们都知道varchar的长度最大是4000,但是客户这里居然有32767: 把客户的建表语句弄出来,放到我的一个19c的测试环境进行测试: 发现报错了: 这里报错很明显了,是M…

Linux:动静态库介绍

动静态库 库的介绍开发环境 & 编译器库存在的意义库的实现库的命名静态库制作和使用总结 动态库的制作和使用动态库的使用方法方法一方法二方法三 库加载问题静态库加载问题动态库的加载问题与位置无关码 C/C静态库下载方式 库的介绍 静态库:程序在编译链接的时…

mac IDEA激活 亲测有效

1、官网下载mac版本IDEA并安装 2、打开激活页面 3、下载脚本文件 链接: https://pan.baidu.com/s/1I2BqdfxSJv1A96422rflnA?pwdm494 提取码: m494 4、命令行到该界面,执行 sudo bash idea.sh 可能出现的问题: 查看sh文件,targetFilePath…

如何爬出 Kotlin 协程死锁的坑?

作者:悬衡 一、前言 在 Java 中有一个非常经典的死锁问题, 就是明明自己已经占用了线程池, 却还继续去申请它, 自己等自己, 就死锁了, 如下图和代码: // 这段代码将死锁到天荒地老final ExecutorService executorService Executors.newSingleThreadExecutor();exe…