![]() |
留胡子的电影票 · 讯飞智能办公本Air ...· 4 月前 · |
![]() |
活泼的枕头 · “習書記在上海基層調研的第一站就選擇浦東新區 ...· 5 月前 · |
![]() |
坚强的打火机 · 卷死卷生,把中考分数卷爆了|高中|中考生|自 ...· 1 年前 · |
![]() |
坚强的橙子 · P图=学术造假?Nature:论文图片处理的 ...· 1 年前 · |
我在HDFS (非分区)上有ORC数据,大约80亿行,大小为250 in。Iam读取DF中的数据,使用partitionBy ex: df.write.mode("overwrite").partitionBy("some_column").orc("hdfs partitionBy写入不带ay转换的DF“)
当我在spark UI中监控作业状态时,作业和阶段将在20分钟内完成。但spark UI中的"SQL“选项卡显示为40分钟。
在调试模式下运行作业并查看spark日志后,我意识到写入"_temporary“的任务将在20分钟内完成。
之后,将"_temporary“合并到实际输出路径需要20分钟。
所以我的问题是,驱动进程是否将数据从"_temporary“顺序合并到输出路径?或者它是由执行者任务完成的?
我能做些什么来提高性能吗?
你可能想在你的应用程序配置中检查
spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version
选项。在版本1中,驱动程序会提交临时文件。文件的顺序,这已被认为是一个瓶颈。但是franky,人们通常只在比你的案例中更多的文件上观察到这个问题。根据Spark的版本,您可以将提交版本设置为2,有关详细信息,请参阅
SPARK-20107
。
另外,不建议每个executor拥有8个内核,因为当所有8个任务同时写入输出时,这可能会使磁盘IO饱和。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券