首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储在S3和HDFS上的数据

存储在S3和HDFS上的数据
EN

Stack Overflow用户
提问于 2022-05-03 14:25:30
回答 1查看 403关注 0票数 0

我是一名皮斯喀斯特新手,最近加入了一个项目,该项目使用了在Pyspark中开发的ETL /ETL管道,该管道从S3 (通过读取DF中的数据)中摄取CSV文件,并对它们进行处理,然后将它们加载到Hive表(暂存层)。该框架接受一个ETL配置文件,该文件包含Spark语句形式的转换(使用临时视图)。然后从暂存表中读取数据并应用这些转换,最后将数据加载到DWH目标中的Hive表中。上述转换被提交给EMR集群运行Spark (2.4)上的纱线。

在这种情况下,S3与HDFS (EMR)有什么关系?我已经向团队中的其他人提出了这个问题,但没有得到完整的了解。

现在,根据我的理解,输入文件以及Hive表的底层数据文件都存储在S3上。当我对特定表运行以下ls命令时,它将显示构成该表的数据的所有10分区-

aws s3 ls s3://my_bucket/cust_dw/cust_dm_customer_dtls/

代码语言:javascript
复制
2022-05-02 08:24:24   15236547 part-00000-42384ef3-05ae-4b64-abd9-9fe48b9852bf-c000.snappy.parquet
2022-05-02 08:24:24   47685934 part-00001-42384ef3-05ae-4b64-abd9-9fe48b9852bf-c000.snappy.parquet
2022-05-02 08:24:24   59204612 part-00002-42384ef3-05ae-4b64-abd9-9fe48b9852bf-c000.snappy.parquet
2022-05-02 08:24:24   81294375 part-00003-42384ef3-05ae-4b64-abd9-9fe48b9852bf-c000.snappy.parquet
2022-05-02 08:24:24   84390123 part-00004-42384ef3-05ae-4b64-abd9-9fe48b9852bf-c000.snappy.parquet
2022-05-02 08:24:24   19238712 part-00005-42384ef3-05ae-4b64-abd9-9fe48b9852bf-c000.snappy.parquet
2022-05-02 08:24:24   19348723 part-00006-42384ef3-05ae-4b64-abd9-9fe48b9852bf-c000.snappy.parquet
2022-05-02 08:24:24   28934198 part-00007-42384ef3-05ae-4b64-abd9-9fe48b9852bf-c000.snappy.parquet
2022-05-02 08:24:24   18398123 part-00008-42384ef3-05ae-4b64-abd9-9fe48b9852bf-c000.snappy.parquet
2022-05-02 08:24:24   93478230 part-00009-42384ef3-05ae-4b64-abd9-9fe48b9852bf-c000.snappy.parquet

现在,根据我的理解,EMR基本上是一个包含许多节点的HDFS集群。我还认为,数据文件是以分布式方式存储在HDFS上的,部分数据存储在具有一定复制程度的每个节点上。

所以,我的问题是-如果数据存储在S3上,那么它不是存储在HDFS上,对吧。

由于在这种情况下,数据是存储在S3上而不是,我们为什么需要HDFS?是因为,在这种情况下,EMR只是被用作一个分布式环境,用于处理由Spark (在大范围转换期间)处理的数据?HDFS不存储实际数据,而是存储在S3上?

因此事实是,在这种环境中,输入数据存储在S3上,然后由PySpark框架读取,而后者又只使用HDFS节点通过在洗牌过程中分发数据来以分布式方式处理数据?

EN

回答 1

Stack Overflow用户

发布于 2022-05-03 14:49:16

你把这两个搞混了。您不能在EMR中使用S3代替Hadoop文件系统。

HDFS和使用Amazon的S3文件系统(EMRFS)都与Amazon兼容,但它们是不可互换的。HDFS是Hadoop FileSystem API的一个实现,它对POSIX文件系统行为进行建模。EMRFS是一个对象存储,而不是文件系统。

阅读对象存储与文件系统的Hadoop文档可能会给您带来好处。

要了解有关AWS存储和文件系统的更多信息,以及何时使用该系统,请阅读

最后,如果您发现这是有用的,请不要忘记阅读

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72100910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档