amazon-s3 - 从 Spark 结构化流应用程序写入 S3 的性能问题
问题描述
基本上我正在运行 24 x 7 的结构化流作业,写入 S3。但是遇到了这个问题,即 _spark_metadata 需要数小时才能写入单个文件,在此期间没有新的数据摄取处于活动状态。
知道如何解决此问题并启用无停机时间摄取吗?
19/10/24 00:48:34 INFO ExecutorAllocationManager: Existing executor 40 has been removed (new total is 1)
19/10/24 00:49:03 INFO CheckpointFileManager: Writing atomically to s3a://.../data/_spark_metadata/88429.compact using temp file s3a://.../data/_spark_metadata/.88429.compact.00eb0d4b-ec83-4f8c-9a67-4155918a5f83.tmp
19/10/24 03:32:53 INFO CheckpointFileManager: Renamed temp file s3a://.../data/_spark_metadata/.88429.compact.00eb0d4b-ec83-4f8c-9a67-4155918a5f83.tmp to s3a://brivo-prod-dataplatform-kafka-streaming/data/_spark_metadata/88429.compact
19/10/24 03:32:53 INFO FileStreamSinkLog: Current compact batch id = 88429 min compaction batch id to delete = 88329
19/10/24 03:32:54 INFO ManifestFileCommitProtocol: Committed batch 88429
解决方案
rename 在 s3 上模仿复制然后删除并且是 O(data)。检查点更频繁地创建更小的文件
推荐阅读
- flutter - 必须向 Text 小部件提供非空字符串。错误
- javascript - Babel ES6 数组解构
- google-apps-script - 在 getData() 函数中抛出 newUserError
- java - 爪哇。将通用列表转换为工厂中的对象列表
- azure - 有没有办法从 ADF CI/CD 中的文件中引用 overrideParameters?
- angular - 如何在 jhipster 的“home.component.html”上显示/显示多个实体?
- terraform - 如何将 terraform 状态上传到 s3 存储桶?
- google-apps-script - 仅将非空单元格附加到另一个工作表谷歌脚本
- python - Python:带空格的 str.split() 给出索引错误
- javascript - 成功获取后如何打印成功消息?