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

2022-08-28 23:21:38 +08:00
 zywoo

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

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

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

更深度的拓展就上网搜各种关键词啦。
liprais
2022-08-29 00:39:43 +08:00
hive 只关心它能读到要处理的 row
至于数据从哪来的不重要
hdfs 和 s3 没啥关系,都实现了 hive 要求的接口就行
SeaTac
2022-08-29 08:31:41 +08:00
> 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
2022-08-29 10:05:29 +08:00
个人理解,hdfs 是虚拟文件系统,s3 是类似 ntfs 那种硬盘文件系统,对象存储肯定有自己的高可用方案,反正 hadoop 原生就支持这些对象存储,一样用
zywoo
2022-08-29 10:46:21 +08:00
@seaiaddca #3 感谢你的回复。


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

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

请问这个理解对不对呢?
SeaTac
2022-08-29 12:25:11 +08:00
@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
2022-08-29 13:00:48 +08:00
@seaiaddca #6 明白了,感谢大佬,受益匪浅
Aloento
2022-08-30 19:03:09 +08:00
@israinbow 都什么年代了还在用传统 Hadoop
zywoo
2022-08-30 21:13:23 +08:00
@Aloento #8 😅

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/876050

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX