当前位置: 首页 > news >正文

HDFS详解(Hadoop)

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 可能会带来不必要的复杂性和成本。

在这里插入图片描述

相关文章:

HDFS详解(Hadoop)

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

python创建word文档并向word中写数据

一、docx库的安装方法 python创建word文档需要用到docx库,安装命令如下: pip install python-docx 注意,安装的是python-docx。 二、使用方法 使用方法有很多,这里只介绍创建文档并向文档中写入数据。 import docxmydocdocx.Do…...

MongoDB的安装配置及使用

文章目录 前言一、MongoDB的下载、安装、配置二、检验MongoDB是否安装成功三、Navicat 操作MongoDB四、创建一个集合,存放三个文档总结 前言 本文内容: 💫 MongoDB的下载、安装、配置 💫 检验MongoDB是否安装成功 ❤️ Navicat 操…...

Go学习路线

Go学习路线 文章目录 Go学习路线入门阶段一、Go基础和Goland的安装二、学习日志文件及配置文件三、学习mysql四、html,css,js快速入门五、写一个简单的前后端分离的记事本项目六、Linux快速入门七、Docker快速入门八、Git命令快速入门九、使用Docker打包…...

安全大脑与盲人摸象

21世纪是数字科技和数字经济爆发的时代,互联网正从网状结构向类脑模型进行进化,出现了结构和覆盖范围庞大,能够适应不同技术环境、经济场景,跨地域、跨行业的类脑复杂巨型系统。如腾讯、Facebook等社交网络具备的神经网络特征&…...

如何使用Git-Secrets防止将敏感信息意外上传至Git库

关于Git-Secrets Git-secrets是一款功能强大的开发安全工具,该工具可以防止开发人员意外将密码和其他敏感信息上传到Git库中。 Git-secrets首先会扫描提交的代码和说明,当与用户预先配置的正则表达式模式匹配时,便会阻止此次提交。该工具的优…...

Day 14 网络协议

常见网络设备:交换机 路由器 中继器 多协议网关(路由器的前身) 交换机:用于连接统一网络的设备,实现内网设备通信。 从广义上分为:局域网交换机,广域网交换机 从网络构成分为:接…...

msyql中SQL 错误 [1118] [42000]: Row size too large (> 8126)

场景: CREATE TABLE test-qd.eqtree (INSERT INTO test.eqtree (idocid VARCHAR(50) NULL,sfcode VARCHAR(50) NULL,sfname VARCHAR(50) NULL,sfengname VARCHAR(50) NULL,…… ) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_general_ci;或 alter table eqtre…...

实验六 智能手机互联网程序设计(微信程序方向)实验报告

实验目的和要求 请完成创建图片库应用&#xff0c;显示一系列预设的图片。 提供按钮来切换显示不同类别的图片。 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; 1.WXML <view> <button bindtap"showAll">所有图片</but…...

Linux环境下,让Jar项目多线程部署成为可能

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Linux环境下&#xff0c;让Jar项目多线程部署成为可能 前言背景介绍使用sh脚本实现使用systemd来实现使用docker-compose实现 前言 在当今互联网时代&#xff0c;应用程序的高可用性和性能是至关重要…...

k8s调度场景

15个KUBERNETES调度情景实用指南 Kubernetes调度是确保集群中的Pod在适当节点上运行的关键组件。通过灵活配置调度策略&#xff0c;可以提高资源利用率、负载平衡和高可用性。 在本文中&#xff0c;我们将深入探讨一些实际的Kubernetes调度场景&#xff0c;并提供相应的配置示…...

基于小程序实现的餐饮外卖系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…...

家居网购项目(手写分页)

文章目录 1.后台管理—分页显示1.程序框架图2.编写数据模型Page.java 3.编写dao层1.修改FurnDao增加方法 2.修改FurnDaoImpl增加方法 3.单元测试FurnDaoTest 4.编写service层1.修改FurnService增加方法 2.修改FurnServiceImpl增加方法3.单元测试FurnServiceTest 5.编写DataUtil…...

goland2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Goland 是一款由 JetBrains 公司开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门用于 Go 语言的开发。它提供了丰富的功能和工具&#xff0c;帮助开发者更高效地编写、调试和管理 Go 语言项目。 功能特点&#x…...

35、链表-LRU缓存

思路&#xff1a; 首先要了解LRU缓存的原理&#xff0c;首先定下容量&#xff0c;每次get请求和put请求都会把当前元素放最前/后面&#xff0c;如果超过容量那么头部/尾部元素就被移除&#xff0c;所以最近最少使用的元素会被优先移除&#xff0c;保证热点数据持续存在。 不管放…...

数据结构速成--栈

由于是速成专题&#xff0c;因此内容不会十分全面&#xff0c;只会涵盖考试重点&#xff0c;各学校课程要求不同 &#xff0c;大家可以按照考纲复习&#xff0c;不全面的内容&#xff0c;可以看一下小编主页数据结构初阶的内容&#xff0c;找到对应专题详细学习一下。 目录 一…...

算法练习第15天|226.翻转二叉树

226.翻转二叉树 力扣链接https://leetcode.cn/problems/invert-binary-tree/description/ 题目描述&#xff1a; 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&am…...

C#面向对象——封装、封装案例示例

C#面向对象——封装 什么是封装? &#xff08;1&#xff09;封装是将数据和操作数据的方法&#xff08;行为&#xff09;封装在一起。 &#xff08;2&#xff09;程序中封装的体现&#xff1a;属性&#xff0c;方法&#xff0c;类&#xff0c;接口&#xff0c;命名空间&#…...

【InternLM 实战营第二期-笔记3】茴香豆:搭建你的 RAG 智能助理

书生浦语是上海人工智能实验室和商汤科技联合研发的一款大模型,很高兴能参与本次第二期训练营&#xff0c;我也将会通过笔记博客的方式记录学习的过程与遇到的问题&#xff0c;并为代码添加注释&#xff0c;希望可以帮助到你们。 记得点赞哟(๑ゝω╹๑) 茴香豆&#xff1a;搭建…...

Advanced RAG 03:运用 RAGAs 与 LlamaIndex 评估 RAG 应用

编者按&#xff1a;目前&#xff0c;检索增强生成&#xff08;Retrieval Augmented Generation&#xff0c;RAG&#xff09;技术已经广泛使用于各种大模型应用场景。然而&#xff0c;如何准确评估 RAG 系统的性能和效果&#xff0c;一直是业界和学界共同关注的重点问题。若无法…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...