Java 开发实习生,但是实习期间一直在弄些 hive 脚本的相关工作,维护现有的报表。 之前没了解过大数据相关,自学了两天 Hadoop 和 Hive 相关的东西,有一些疑问: 1 、由于公司是海外业务,aws 和 azure 用的比较多,数仓这一套东西全都搭在云上,用的是 aws EMR 服务 + aws S3 做存储。这里第一个问题:S3 作为存储服务,是和 HDFS 同级别的东西吗?是 S3 从根本上代替了 HDFS ,还是说 HDFS 是一种概念或者规范,S3 是 HDFS 的一种实现方式? 2 、如果是前者,那么 HDFS 架构中的 NameNode ,DataNode 这些概念,在 S3 中是必要的吗? S3 又是否有数据冗余的措施来保证数据的高可用?
初学者有很多基本的概念和理念还没有搞清楚,所以这可能是一个非常蠢的问题。求有经验的大佬们点拨一二
1
israinbow 2022-08-28 23:55:31 +08:00 via Android
亚马逊 S3 是对象存储服务,对象储存是一个概念或者规定,主要定义一个储存形式:储存文件的数据与其相关属性信息的集合体; HDFS 是 Hadoop 定义的抽象文件系统的一个实现,是一种分布式环境的专用文件系统,但相对于 ext 、fat 、zfs 之类的底层文件系统,更贴近 “软件层”。
更深度的拓展就上网搜各种关键词啦。 |
2
liprais 2022-08-29 00:39:43 +08:00 via iPhone
hive 只关心它能读到要处理的 row
至于数据从哪来的不重要 hdfs 和 s3 没啥关系,都实现了 hive 要求的接口就行 |
3
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 |
4
qianxaingmoli 2022-08-29 10:05:29 +08:00
个人理解,hdfs 是虚拟文件系统,s3 是类似 ntfs 那种硬盘文件系统,对象存储肯定有自己的高可用方案,反正 hadoop 原生就支持这些对象存储,一样用
|
5
zywoo OP @seaiaddca #3 感谢你的回复。
这是我找到的一张结构图,我对它的理解是对于 Hadoop 来说,存储层的具体实现是透明的,既可以是 HDFS ,也可以是实现了 Hadoop 文件系统 API 的对象存储系统( S3 + EMRFS , 对应图中的 Swift + Swift API ),它们在存储这个功能层次上是可替代的。 如果 S3 可以理解成硬盘的话,那么 S3 上的文件系统(我也不知道是什么)才是真正和 HDFS 同级别的东西。 请问这个理解对不对呢? |
6
SeaTac 2022-08-29 12:25:11 +08:00 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 同级别的东西。 可以这么认为 |