V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zywoo
V2EX  ›  Hadoop

菜鸡初学者对 Hadoop 云端架构的一些疑惑

  •  
  •   zywoo · 100 天前 · 1233 次点击
    这是一个创建于 100 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Java 开发实习生,但是实习期间一直在弄些 hive 脚本的相关工作,维护现有的报表。 之前没了解过大数据相关,自学了两天 Hadoop 和 Hive 相关的东西,有一些疑问: 1 、由于公司是海外业务,aws 和 azure 用的比较多,数仓这一套东西全都搭在云上,用的是 aws EMR 服务 + aws S3 做存储。这里第一个问题:S3 作为存储服务,是和 HDFS 同级别的东西吗?是 S3 从根本上代替了 HDFS ,还是说 HDFS 是一种概念或者规范,S3 是 HDFS 的一种实现方式? 2 、如果是前者,那么 HDFS 架构中的 NameNode ,DataNode 这些概念,在 S3 中是必要的吗? S3 又是否有数据冗余的措施来保证数据的高可用?

    初学者有很多基本的概念和理念还没有搞清楚,所以这可能是一个非常蠢的问题。求有经验的大佬们点拨一二

    9 条回复    2022-08-30 21:13:23 +08:00
    israinbow
        1
    israinbow  
       100 天前 via Android
    亚马逊 S3 是对象存储服务,对象储存是一个概念或者规定,主要定义一个储存形式:储存文件的数据与其相关属性信息的集合体; HDFS 是 Hadoop 定义的抽象文件系统的一个实现,是一种分布式环境的专用文件系统,但相对于 ext 、fat 、zfs 之类的底层文件系统,更贴近 “软件层”。

    更深度的拓展就上网搜各种关键词啦。
    liprais
        2
    liprais  
       100 天前 via iPhone
    hive 只关心它能读到要处理的 row
    至于数据从哪来的不重要
    hdfs 和 s3 没啥关系,都实现了 hive 要求的接口就行
    seaiaddca
        3
    seaiaddca  
       100 天前
    > S3 作为存储服务,是和 HDFS 同级别的东西吗?
    不是,S3 和 HDFS 不是一个概念。S3 是 object storage ,可以简单的理解为“硬盘”; HDFS 是 file system ,可以简单的理解为你用 macOS/Windows 的文件系统( NTFS/APFS )。S3 只是 object storage 的一种,Azure 应该也有自己的 object storage 。

    > 是 S3 从根本上代替了 HDFS ,还是说 HDFS 是一种概念或者规范,S3 是 HDFS 的一种实现方式? 2 、如果是前者,那么 HDFS 架构中的 NameNode ,DataNode 这些概念,在 S3 中是必要的吗?
    前提错误了。

    > S3 又是否有数据冗余的措施来保证数据的高可用?
    必然有,但是很复杂...SLA 之类基本数据可以参考 AWS 的官方文档: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DataDurability.html
    qianxaingmoli
        4
    qianxaingmoli  
       100 天前
    个人理解,hdfs 是虚拟文件系统,s3 是类似 ntfs 那种硬盘文件系统,对象存储肯定有自己的高可用方案,反正 hadoop 原生就支持这些对象存储,一样用
    zywoo
        5
    zywoo  
    OP
       100 天前
    @seaiaddca #3 感谢你的回复。


    这是我找到的一张结构图,我对它的理解是对于 Hadoop 来说,存储层的具体实现是透明的,既可以是 HDFS ,也可以是实现了 Hadoop 文件系统 API 的对象存储系统( S3 + EMRFS , 对应图中的 Swift + Swift API ),它们在存储这个功能层次上是可替代的。

    如果 S3 可以理解成硬盘的话,那么 S3 上的文件系统(我也不知道是什么)才是真正和 HDFS 同级别的东西。

    请问这个理解对不对呢?
    seaiaddca
        6
    seaiaddca  
       99 天前   ❤️ 1
    @zywoo
    > 我对它的理解是对于 Hadoop 来说,存储层的具体实现是透明的,既可以是 HDFS ,也可以是实现了 Hadoop 文件系统 API 的对象存储系统

    是的

    > ( S3 + EMRFS , 对应图中的 Swift + Swift API ),它们在存储这个功能层次上是可替代的。

    SwiftAdapter + Swift Java client API + OpenStack Swift = EMRFS + S3
    EMRFS 是 HDFS 的一种实现,EMR cluster 通过 EMRFS 对 S3 里的数据进行读写,对用户来说 S3 是一个简单的 key-value pair object storage 。
    在你的图里,左边的“HDFS”包含了数据储存,但 HDFS 本身只是一个 distribute file system ,并不包含实际的储存。

    > 如果 S3 可以理解成硬盘的话,那么 S3 上的文件系统(我也不知道是什么)才是真正和 HDFS 同级别的东西。

    可以这么认为
    zywoo
        7
    zywoo  
    OP
       99 天前
    @seaiaddca #6 明白了,感谢大佬,受益匪浅
    Aloento
        8
    Aloento  
       98 天前 via Android
    @israinbow 都什么年代了还在用传统 Hadoop
    zywoo
        9
    zywoo  
    OP
       98 天前
    @Aloento #8 😅
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4723 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 03:39 · PVG 11:39 · LAX 19:39 · JFK 22:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.