小编Gur*_*uru的帖子

Spark Executor 在将数据帧写入镶木地板时性能低下

Spark 版本:2.3 hadoop 发行版:azure Hdinsight 2.6.5 平台:Azure 存储:BLOB

集群中的节点:6 个执行程序实例:每个执行程序 6 个核心:3 每个执行程序内存:8GB

尝试通过同一存储帐户上的 Spark 数据帧将 azure blob (wasb) 中的 csv 文件(大小 4.5g - 280 col,280 万行)加载为 parquet 格式。我已将文件重新分区为不同大小,即 20、40、60、100,但遇到一个奇怪的问题,即处理非常小的记录子集(< 1%)的 6 个执行程序中的 2 个继续运行 1 小时左右并最终完成。

问题 :

1) 这 2 个执行程序正在处理的分区需要处理的记录最少(少于 1%),但需要近一个小时才能完成。这是什么原因。这与数据倾斜场景相反吗?

2) 运行这些执行程序的节点上的本地缓存文件夹已被填满 (50-60GB)。不确定这背后的原因。

3) 增加分区确实会将整体执行时间降低到 40 分钟,但只想知道这 2 个执行器的低执行时间背后的原因。

Spark 新手,因此期待一些调整此工作负载的指导。附加来自 Spark WebUi 的附加信息。

performance apache-spark parquet apache-spark-sql apache-spark-2.0

6
推荐指数
1
解决办法
1379
查看次数