• 终于有人把HDFS架构和读写流程讲明白了


    一、HDFS基础

    以下是HDFS设计时的目标。

    1. 硬件故障

    硬件故障对于HDFS来说应该是常态而非例外。HDFS包含数百或数千台服务器(计算机),每台都存储文件系统的一部分数据。事实上,HDFS存在大量组件并且每个组件具有非平凡的故障概率,这意味着某些组件始终不起作用。因此,检测故障并从中快速自动恢复是HDFS的设计目标。

    2. 流式数据访问

    在HDFS上运行的应用程序不是通常在通用文件系统上运行的通用应用程序,需要对其数据集进行流式访问。HDFS用于批处理而不用于用户的交互式使用,相对于数据访问的低延迟更注重数据访问的高吞吐量。

    可移植操作系统接口(Portable Operating System Interface of UNIX, POSIX)标准设置的一些硬性约束对HDFS来说是不需要的,因此HDFS会调整一些POSIX特性来提高数据吞吐率,事实证明是有效的。

    3. 超大数据集

    在HDFS上运行的应用程序具有大型数据集。HDFS上的一个文件大小一般在吉字节(GB)到太字节(TB)。因此,HDFS需要设计成支持大文件存储,以提供整体较高的数据传输带宽,能在一个集群里扩展到数百上千个节点。一个HDFS实例需要支撑千万计的文件。

    4. 简单的一致性模型

    HDFS应用需要“一次写入多次读取”访问模型。假设一个文件经过创建、写入和关闭之后就不会再改变了。这一假设简化了数据一致性问题,并可实现高吞吐量的数据访问。MapReduce应用或网络爬虫应用都非常适合这个模型。将来还需要扩充这个模型,以便支持文件的附加写操作。

    5. 移动计算而不是移动数据

    当应用程序在其操作的数据附近执行时,计算效率更高。当数据集很大时更是如此,这可以最大限度地减少网络拥塞并

  • 相关阅读:
    国内镜像源网址
    【Dotnet 工具箱】DotNetCorePlugins- 动态加载和卸载 .NET 程序插件
    Spring中shutdown hook作用
    基于Lumisoft.NET组件,使用IMAP协议收取邮件
    01、Docker入门
    论文写作系列1:如何回复中文审稿意见
    分布式消息通信之Kafka的实现原理
    统一缓存库jetcache和SpringBoot整合
    Linux rpm命令详解
    软件定制开发的细节|网站搭建|APP小程序定制
  • 原文地址:https://blog.csdn.net/m0_73257876/article/details/126417958