gpt4 book ai didi

apache-spark - Spark 在写入 HDFS 或 S3 时是否锁定文件

转载 作者:行者123 更新时间:2023-12-03 07:19:32 25 4
gpt4 key购买 nike

我有一个 S3 位置,其目录结构如下,并在其顶部创建了一个 Hive 表:

s3://<Mybucket>/<Table Name>/<day Partition>

假设我有一个 Spark 程序,它使用以下代码行将数据写入上面跨越多个分区的表位置:

Df.write.partitionBy("orderdate").parquet("s3://<Mybucket>/<Table Name>/")

如果“Hive SQL 查询”或“AWS Athena Query”等其他程序同时开始从表中读取数据:

他们是否考虑写入临时文件?

spark 在写入 S3 位置时是否会锁定数据文件?

我们如何使用 Spark 作为 ETL 工具来处理这种并发情况?

最佳答案

  1. 没有锁。未在 S3 或 HDFS 中实现。
  2. 在 HDFS 中提交工作的过程在 HDFS 中不是原子的;作业提交中正在进行一些重命名,速度很快,但不是即时的
  3. 对于 S3,经典输出提交者的速度慢得要命,因为它假设重命名是原子的且速度很快。
  4. Apache S3A 提交者避免重命名,仅使输出在作业提交中可见,这速度很快,但不是原子的
  5. Amazon EMR 现在拥有自己的 S3 提交程序,但它会在每个任务提交时使文件可见,因此使读者长时间暴露于不完整的输出

关于apache-spark - Spark 在写入 HDFS 或 S3 时是否锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49373482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com