0

0

Spark 并行读取但写入分区时仅使用单核的优化方案

霞舞

霞舞

发布时间:2025-08-08 16:16:30

|

446人浏览过

|

来源于php中文网

原创

spark 并行读取但写入分区时仅使用单核的优化方案

本文旨在解决 Spark 在本地模式下读取 CSV 文件并写入 Iceberg 表时,读取阶段能够充分利用多核并行处理,而写入阶段却退化为单核处理的问题。通过分析可能的原因,并结合配置调整和 AWS CLI 优化,提供了一套提升 Spark 写入性能的解决方案,帮助用户充分发挥计算资源的潜力。

在 Spark 中,并行读取和写入的底层机制存在差异,导致在特定场景下出现读取并行而写入串行的情况。尤其是在本地模式下,资源配置不当更容易放大这个问题。以下是一些可能的解决方案和优化方向:

1. 调整 Spark 执行器配置

避免过度依赖动态资源分配。虽然 spark.dynamicAllocation.enabled 在某些情况下可以提升资源利用率,但在本地模式下,它可能反而会将所有任务分配给单个执行器,导致写入性能下降。因此,建议显式配置执行器的数量、内存和核心数。

--master yarn \
--deploy-mode cluster \
--num-executors 4 \
--executor-memory 1G \
--executor-cores 1 \
--driver-memory 2G \
--driver-cores 1 \

使用 yarn 作为 master,并使用 cluster 部署模式。通过 --num-executors 设置执行器数量,--executor-memory 设置每个执行器的内存大小,--executor-cores 设置每个执行器的核心数。 请注意,这些值需要根据实际的集群资源和数据规模进行调整。

2. 监控 Spark 任务执行情况

使用 Spark History Server UI 监控写入操作开始时的执行器数量和任务数量。如果发现执行器数量不足或任务分配不均,需要进一步调整执行器配置。

万兴爱画
万兴爱画

万兴爱画AI绘画生成工具

下载

3. 优化 AWS CLI 配置

如果数据写入的目标是 Amazon S3,可以通过调整 AWS CLI 的配置来提升写入性能。以下是一些关键的配置参数:

  • max_concurrent_requests: 最大并发请求数。增加此值可以提高写入 S3 的并发度。
  • max_queue_size: 任务队列的最大长度。增加此值可以容纳更多的写入任务。
  • multipart_threshold: 触发分段上传的文件大小阈值。对于大文件,分段上传可以提高上传速度和稳定性。
  • multipart_chunksize: 分段上传的块大小。合理设置块大小可以优化上传性能。
  • max_bandwidth: 最大带宽限制。如果网络带宽充足,可以适当提高此值。

可以通过以下方式配置 AWS CLI:

aws configure set s3.max_concurrent_requests 20
aws configure set s3.max_queue_size 1000
aws configure set s3.multipart_threshold 64MB
aws configure set s3.multipart_chunksize 16MB
aws configure set s3.max_bandwidth 100MB/s

注意事项:

  • 在调整 Spark 和 AWS CLI 配置时,需要充分考虑集群资源、网络带宽和数据规模等因素。
  • 建议逐步调整配置参数,并结合监控数据进行评估,找到最佳的配置组合。
  • 如果问题仍然存在,可以考虑升级 Spark 版本或更换底层存储系统。

总结:

Spark 写入性能受多种因素影响,包括 Spark 配置、存储系统配置和网络带宽等。通过合理配置 Spark 执行器、优化 AWS CLI 参数,并结合监控数据进行评估,可以有效提升 Spark 写入性能,充分利用计算资源。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

981

2023.11.02

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 14.4万人学习

C# 教程
C# 教程

共94课时 | 8万人学习

C++教程
C++教程

共115课时 | 14.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号