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

【大数据】分布式存储系统GFS与HDFS、高可用与高容错解析

目录一、Chunk Block二、Master Chunk Server存储与计算的解耦1. 不准确2. 调度与存储处理的解耦解耦的具体含义为什么这样设计3. NameNode DataNodeNameNode元数据管理DataNode数据存储/处理数据作为糖原NameNode作为大脑DataNode作为肌肉三、高可用和高容错性有什么区别1. 概念介绍高可用性High Availability高容错性High Fault Tolerance2. 区别3. 相互关系一、Chunk Block在GFS中Chunk默认大小是64MB。作者在参加云计算相关竞赛时发现有题目说Hadoop的Block默认是64MB这和作者之前学的128MB不太一样故进行以下整理在Hadoop分布式文件系统HDFS中块BLOCK的默认大小曾经是64MB在较新版本的Hadoop中默认块大小通常是128MB。不过这个值是可以配置的具体取决于你使用的Hadoop发行版本以及系统的配置。在Hadoop的较新版本中例如2.x及之后默认的块大小确实是128MB。这种较大的块大小可以减少文件系统的元数据数量同时提高大规模数据处理的效率。这就说明现在的数据趋势是单个文件的平均文件大小迅速上升作者预估后续默认256MB不会遥远块大小可以在Hadoop的配置文件中自定义设置通常在hdfs-site.xml文件中配置dfs.blocksize属性来指定。例如要设置块大小为128MB可以在hdfs-site.xml中设置如下property namedfs.blocksize/name value134217728/value !-- 128MB in bytes -- /property这个配置决定了HDFS在存储文件时的块分割策略。选择适当的块大小对于Hadoop集群的性能和效率至关重要因为它影响到文件的并行处理能力和存储效率。在处理大量小文件时较大的块大小可能导致存储空间的浪费而在处理大文件时较大的块大小可以提高处理效率。因此选择块大小时需要根据具体的使用场景和数据特点来决定。二、Master Chunk Server存储与计算的解耦1. 不准确作者在学习过程中发现这样一句话GFS中的Master和Chunk Server的设立是一种存储与计算的解耦作者觉得怪怪的。想起之前的SAN网络不知道RAID/SAN/NAS的小可爱来看看这个吧_nas跟san都可以组成raid-CSDN博客它确实实现了服务器计算与硬件资源存储的解耦。但是Master没有进行计算的相关任务重点就是元数据存储。所以作者认为这句话的解耦主要指的是管理元数据管理与实际数据存储的物理隔离。在GFS中存储与计算的解耦更多地指的是元数据管理与数据存储处理的分离。而在SAN框架中解耦则是指物理存储资源与使用这些资源的服务器之间的物理和逻辑分离。两者都实现了解耦的概念但侧重点和实现方式有所不同。GFS是为了大规模数据处理设计的文件系统而SAN是为了提高大型网络中存储资源的使用效率和灵活性设计的存储网络。2. 调度与存储处理的解耦综上在GFSGoogle File System的上下文中谈论“存储与计算的解耦”确实可能造成一些误解。更准确的描述应该是“元数据管理与数据存储/处理的解耦”或者说是“调度与存储处理的解耦”。解耦的具体含义元数据管理与数据存储/处理的解耦在GFS中master节点负责元数据的管理这包括文件和块的命名空间、文件到块的映射、块的位置等而chunk server节点负责实际数据块的存储和处理。这种设计意味着系统的管理操作调度、命名空间管理等与数据的实际存储和处理是分开的。调度与存储处理的解耦调度指的是管理数据存储和访问的决策过程例如决定哪个chunk server存储哪个数据块或者如何处理读写请求。这些调度操作是由GFS的master节点负责的。存储处理则是指实际的数据读写操作由chunk server节点完成。为什么这样设计这种解耦设计有几个优点扩展性通过解耦GFS可以更容易地在多个chunk server上扩展数据存储因为数据管理由master负责与数据存储由chunk server负责是分开的。性能优化元数据操作通常需要更快的访问速度和更多的计算资源而数据存储则需要更大的存储空间和高效的数据传输。分开处理可以针对这些操作进行优化。容错性解耦还意味着系统的不同部分可以独立失败和恢复从而提高了系统的总体可靠性。3. NameNode DataNodeHadoop的HDFSHadoop Distributed File System中的NameNode和DataNode体现了类似于GFS中master和chunk server的设计实现了元数据管理与数据存储/处理的解耦。NameNode元数据管理NameNode在HDFS中扮演的角色类似于GFS中的master节点。它负责管理文件系统的命名空间。具体而言NameNode存储了文件系统树及所有文件和目录的元数据。这些信息包括文件的目录结构、文件的属性如权限、修改时间等以及文件的块block信息和它们对应的DataNode位置。NameNode不存储实际的数据而只管理元数据。这意味着对于文件系统的结构和数据的查找、定位操作都是通过与NameNode交互来完成的。DataNode数据存储/处理DataNode在HDFS中的作用类似于GFS的chunk server。它们负责存储实际的数据块。在HDFS中文件被切分成一个或多个块并且这些块存储在一组DataNode上。DataNode负责处理文件系统客户端的读写请求并执行与这些数据块相关的操作比如创建、删除、复制块等。作者的脑回路又开始工作了我们完全可以将数据比作糖原NameNode比作大脑DataNode比作处理糖原的肌肉。NameNode负责文件系统的“大脑”部分即元数据和命名空间的管理而DataNode则承担了实际存储和处理数据的“肌肉”工作。这种设计模式是为了优化大规模数据处理的性能、可靠性和可管理性。数据作为糖原在这个类比中数据糖原是能量的来源就像在计算环境中数据是进行计算和分析的基础资源。糖原在生物体中被存储并在需要时被转换为能量类似地数据被存储在分布式文件系统中并在需要时被访问和处理。NameNode作为大脑NameNode大脑管理和控制整个系统的元数据信息这包括数据的位置、状态等。就像大脑通过神经系统控制和协调身体的各个部分NameNode通过网络协调DataNode的数据存储和处理活动。它不直接涉及能量数据的生产或消耗但负责调度和指挥。DataNode作为肌肉DataNode肌肉负责存储和处理数据类似于肌肉存储糖原并在需要时将其转化为能量。肌肉在需要时劳作以产生动力DataNode在需要时进行数据的读写操作以提供服务。它们是执行具体任务的实体负责实际的“工作负荷”。三、高可用和高容错性有什么区别在分布式存储系统中高可用性High Availability和高容错性High Fault Tolerance是两个密切相关但有区别的概念。它们都是系统设计的重要目标旨在确保系统能够持续稳定地提供服务即使在面临故障和异常时也是如此。1. 概念介绍高可用性High Availability高可用性关注的是系统能够持续不间断地提供服务的能力。一个高可用的系统能够在面对硬件故障、软件故障或网络问题时通过快速恢复或自动切换到备份系统来维持服务的连续性。目标是减少系统停机时间确保用户或客户端能够尽可能持续地访问系统和数据。在分布式存储系统中高可用性通常通过如下方式实现冗余通过在不同节点或位置复制数据来确保数据的可用性。快速故障恢复系统能够快速检测到故障并自动切换到正常运行的组件。负载均衡分散请求避免单点故障导致的服务中断。高容错性High Fault Tolerance高容错性指的是系统在部分组件发生故障时仍能正常运行的能力。容错性的重点在于系统设计应能够容纳一定程度的故障而不影响整个系统的功能。高容错系统可以在不依赖立即修复故障的情况下继续运行。在分布式存储系统中高容错性可以通过以下方式实现数据复制在多个节点存储数据副本从而在某些节点失败时仍能从其他节点访问数据。自动故障检测与恢复系统可以自动检测到故障节点并将任务转移至健康节点。分布式设计通过分布式架构减少单点故障的风险。2. 区别焦点差异高可用性更侧重于减少系统停机时间确保服务的连续性而高容错性更侧重于系统对故障的抵抗能力即使在部分系统组件失败的情况下仍能继续运行。实现方式虽然两者都可能涉及到如数据复制、故障切换等技术但高可用性更注重快速恢复正常服务而高容错性则强调即使在故障情况下也能保持服务运行。3. 相互关系互补性虽然高可用性和高容错性在技术和策略上可能有所不同但它们在实现稳定可靠的系统中是互补的。高容错性通过降低系统对单点故障的敏感度来增强系统的整体鲁棒性而高可用性则确保在出现故障时能够快速恢复服务。相辅相成在实际应用中强大的容错机制可以减少系统出现严重问题的频率这反过来减轻了对高可用性机制的依赖。但即便有着强大的容错机制系统仍然需要高可用性措施来处理无法预料或无法“容忍”的故障情况。在设计分布式存储系统时高可用性和高容错性都是重要的设计目标。它们共同确保了系统在面对故障和挑战时能够保持稳定和可靠的服务。尽管它们的关注点和实现策略有所不同但在实践中这两个概念往往是互相交织和支持的。

相关文章:

【大数据】分布式存储系统GFS与HDFS、高可用与高容错解析

目录 一、Chunk & Block 二、Master & Chunk Server:存储与计算的解耦? 1. 不准确! 2. 调度与存储处理的解耦 解耦的具体含义 为什么这样设计? 3. NameNode & DataNode NameNode(元数据管理&…...

PyCaret高性能计算:GPU加速训练指南

PyCaret高性能计算:GPU加速训练指南 【免费下载链接】pycaret An open-source, low-code machine learning library in Python 项目地址: https://gitcode.com/gh_mirrors/py/pycaret PyCaret是一个开源的低代码机器学习库,通过GPU加速功能可以显…...

pydata-book沟通技巧:如何向非技术人员解释数据分析结果

pydata-book沟通技巧:如何向非技术人员解释数据分析结果 【免费下载链接】pydata-book wesm/pydata-book: 这是Wes McKinney编写的《Python for Data Analysis》一书的源代码仓库,书中涵盖了使用pandas、NumPy和其他相关库进行数据处理和分析的实践案例和…...

从Swin到VMamba:视觉Transformer的效率革命

从Swin到VMamba:视觉Transformer的效率革命 【免费下载链接】VMamba 项目地址: https://gitcode.com/gh_mirrors/vm/VMamba 在计算机视觉领域,设计计算效率高的网络架构一直是持续的需求。随着视觉Transformer的发展,从Swin Transfor…...

终极SSH文件系统指南:sshfs如何让远程文件访问像本地一样简单

终极SSH文件系统指南:sshfs如何让远程文件访问像本地一样简单 【免费下载链接】sshfs File system based on the SSH File Transfer Protocol 项目地址: https://gitcode.com/gh_mirrors/ssh/sshfs sshfs是一款基于SSH文件传输协议的文件系统客户端&#xff…...

IEC 61850标准协议解读 5.基于Java的MMS实现 lec61850bean

专栏文章目录 第一章 IEC 61850标准协议解读 0.导言 第二章 IEC 61850标准协议解读 1.建模讲解 第三章 IEC 61850标准协议解读 2.基于Java的MMS实现 目录 专栏文章目录 前言 1 依赖库引入 2 创建服务端 3 创建客户端 4 读写模型 4.1 服务端读写 4.2 客户端读写 5.报告 6 文件服…...

wow-time时间操作说明

wow-time文件说明 项目地址:https://github.com/wow-iot3/wow_linux_eval本文件的功能主要用于处理时间操作,主要涉及时间信息获取(普通格式与cp56格式)、设置时间、格式转换、获取时间戳、获取毫秒数; 获取时间信息 int wow_time_get_cp56(C…...

探秘 ESCRCPY:一款高效便捷的无线屏幕镜像工具

探秘 ESCRCPY:一款高效便捷的无线屏幕镜像工具 【免费下载链接】escrcpy 📱 Graphical Scrcpy to display and control Android, devices powered by Electron. | 使用图形化的 Scrcpy 显示和控制您的 Android 设备,由 Electron 驱动。 项目…...

100元打造便携显示器:PocketLCD完整物料清单与采购指南

100元打造便携显示器:PocketLCD完整物料清单与采购指南 【免费下载链接】PocketLCD 带充电宝功能的便携显示器 项目地址: https://gitcode.com/gh_mirrors/po/PocketLCD PocketLCD是一款带充电宝功能的便携显示器开源项目,让你花最少的成本拥有一…...

CGAL计算几何算法库完全指南:从入门到精通的终极教程

CGAL计算几何算法库完全指南:从入门到精通的终极教程 【免费下载链接】cgal The public CGAL repository, see the README below 项目地址: https://gitcode.com/gh_mirrors/cg/cgal CGAL(Computational Geometry Algorithms Library)…...

WHAT - 浏览器缓存机制系列(二)强缓存、协商缓存和启发式缓存

目录 一、介绍 二、强缓存 三、协商缓存 三、html & js 缓存策略 四、启发式缓存 启发式缓存什么时候发生 浏览器的推算规则 如果没有 Last-Modified DevTools 里怎么看出是启发式缓存 启发式缓存的风险 1. 浏览器行为不一致 2. 更新不可控 3. CDN 行为不同 总结 今天主要介…...

如何使用CoreRT:.NET Core终极AOT编译优化指南

如何使用CoreRT:.NET Core终极AOT编译优化指南 【免费下载链接】corert This repo contains CoreRT, an experimental .NET Core runtime optimized for AOT (ahead of time compilation) scenarios, with the accompanying compiler toolchain. 项目地址: https:…...

如何快速上手LedisDB:高性能NoSQL数据库的完整指南

如何快速上手LedisDB:高性能NoSQL数据库的完整指南 【免费下载链接】ledisdb A high performance NoSQL Database Server powered by Go 项目地址: https://gitcode.com/gh_mirrors/le/ledisdb LedisDB是一个由Go语言驱动的高性能NoSQL数据库服务器&#xff…...

mmdetection目标检测API封装:Python SDK开发全攻略

mmdetection目标检测API封装:Python SDK开发全攻略 【免费下载链接】mmdetection open-mmlab/mmdetection: 是一个基于 PyTorch 的人工智能物体检测库,支持多种物体检测算法和工具。该项目提供了一个简单易用的人工智能物体检测库,可以方便地…...

如何在Linux终端使用sc-im?新手入门的完整指南

如何在Linux终端使用sc-im?新手入门的完整指南 【免费下载链接】sc-im sc-im - Spreadsheet Calculator Improvised -- An ncurses spreadsheet program for terminal 项目地址: https://gitcode.com/gh_mirrors/sc/sc-im sc-im是一款功能强大的终端电子表格…...

TOMs插件生态系统:10个必装的官方认证扩展推荐

TOMs插件生态系统:10个必装的官方认证扩展推荐 【免费下载链接】TOMs TOMs is a fully open-source, high-performance, systematic, plugin-oriented, and scenario-agnostic general-purpose development framework. 项目地址: https://gitcode.com/gh_mirrors…...

探索未来桌面体验:AeroSpace Beta,专为Mac打造的高级窗口管理器

探索未来桌面体验:AeroSpace Beta,专为Mac打造的高级窗口管理器 【免费下载链接】AeroSpace AeroSpace is an i3-like tiling window manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ae/AeroSpace 在数字化的世界里&#xff0…...

如何快速入门Wireshark?Computer-Networking-A-Top-Down-Approach-NOTES实验教程

如何快速入门Wireshark?Computer-Networking-A-Top-Down-Approach-NOTES实验教程 【免费下载链接】Computer-Networking-A-Top-Down-Approach-NOTES 《计算机网络-自顶向下方法(原书第6版)》编程作业,Wireshark实验文档的翻译和解答。 项目…...

python-docx常见问题解答:新手必知的15个错误和解决方案

python-docx常见问题解答:新手必知的15个错误和解决方案 【免费下载链接】python-docx Create and modify Word documents with Python 项目地址: https://gitcode.com/gh_mirrors/py/python-docx python-docx是一个强大的Python库,用于创建和修改…...

智动群剪视频矩阵引

链接:https://pan.quark.cn/s/358832aed834智动群剪视频矩阵引擎,批量制作视频软件软件使用步骤:1.加入素材(手动添加或复制素材到对应目录) 2.勾选需要用到的素材 3.选择功能,修改数值 4.一键开始制作视频…...

AI变声器

链接:https://pan.quark.cn/s/fa61e826ee5e...

AI变声器+

链接:https://pan.quark.cn/s/9b9dd9ddd66d...

终极指南:Upspin核心架构完全解析——三大服务如何构建全球命名系统

终极指南:Upspin核心架构完全解析——三大服务如何构建全球命名系统 【免费下载链接】upspin Upspin: A framework for naming everyones everything. 项目地址: https://gitcode.com/gh_mirrors/up/upspin Upspin是一个创新的全球命名系统框架,旨…...

Slurm高级特性详解:QoS、资源限制与作业优先级配置指南

Slurm高级特性详解:QoS、资源限制与作业优先级配置指南 【免费下载链接】slurm Slurm: A Highly Scalable Workload Manager 项目地址: https://gitcode.com/gh_mirrors/sl/slurm Slurm作为一款高度可扩展的工作负载管理器,提供了强大的作业调度和…...

为什么我的电脑不能升级Windows 11?终极兼容性检测工具深度解析

为什么我的电脑不能升级Windows 11?终极兼容性检测工具深度解析 【免费下载链接】WhyNotWin11 Detection Script to help identify why your PC is not Windows 11 Release Ready. Now Supporting Update Checks! 项目地址: https://gitcode.com/gh_mirrors/wh/Wh…...

Gorilla技术播客系列:与AI先驱探讨函数调用的未来

Gorilla技术播客系列:与AI先驱探讨函数调用的未来 【免费下载链接】gorilla Gorilla: An API store for LLMs 项目地址: https://gitcode.com/gh_mirrors/go/gorilla Gorilla作为LLM的API商店,正在引领函数调用技术的革新。本播客系列邀请AI领域先…...

目前最全的计算机视觉公开数据集汇总 持续更新 400+数据集

总计:47个类别,涵盖约400+个具体数据集 这47个类别基本覆盖了计算机视觉的全部主流研究领域,从底层图像处理(去噪/增强/修复)到中层视觉(检测/分割/跟踪),再到高层理解(识别/问答/推理),以及3D视觉、多模态学习和特殊应用场景。 目录 一、通用视觉基础数据集(分…...

终极Bedrock持续集成指南:如何自动化测试和部署WordPress项目

终极Bedrock持续集成指南:如何自动化测试和部署WordPress项目 【免费下载链接】bedrock WordPress boilerplate with Composer, easier configuration, and an improved folder structure 项目地址: https://gitcode.com/gh_mirrors/be/bedrock Bedrock是一个…...

如何使用ATF快速开发Windows工具:完整入门指南

如何使用ATF快速开发Windows工具:完整入门指南 【免费下载链接】ATF Authoring Tools Framework (ATF) is a set of C#/.NET components for making tools on Windows. ATF has been in continuous development in Sony Computer Entertainments (SCE) Worldwide St…...

ubuntu软件源公钥配置例子 gpg

在旧版本(23.10 及以前)中,所有源都写在一个大文件 /etc/apt/sources.list 里。 在新版本中: 主文件废弃/简化:/etc/apt/sources.list 现在通常只包含一行注释,或者指向新目录。 新位置:官方源被…...