apache-spark - 如何获取spark任务详细信息

标签 apache-spark

通过查看 Spark UI 时间线,我发现我的 Spark 应用程序特定阶段的最后一个任务总是花费太多时间。看来任务不可能永远完成,我什至比正常任务等待的时间多了六倍。

我想获得有关lask任务的更多信息,但我不知道如何调试这个特定任务,有人可以给我一些建议吗?

感谢您的帮助!

The data has been partitioned well, so the lask task don't have too much data.

最佳答案

  1. 检查生成的数据帧的解释计划以了解正在发生的操作。有没有洗牌的情况?有时,当对数据帧执行操作(例如联接)时,可能会导致中间数据帧被映射到较少数量的分区,这可能会导致性能下降,因为数据没有尽可能分布。

  2. 检查是否存在大量随机播放和重复调用此类数据帧,并尝试缓存随机播放后立即出现的数据帧。

  3. 查看Spark UI(驱动地址默认为4040),看看缓存的dataframes的数据量是多少,有哪些进程,是否有其他开销,例如gc或者是否是纯粹的处理时间。

希望有帮助。

关于apache-spark - 如何获取spark任务详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48659865/

相关文章:

java - 如何在 apache spark 中加入两个(或更多)流(JavaDStream)

python - pyspark RDD countByKey() 是如何计数的?

Python Spark 本地并行

apache-spark - SparkConf 不读取 spark-submit 参数

performance - 如果在列表中的任意一组点之间,则过滤 Spark DataFrame

python - 如何在 Pyspark 数据帧中使用列表理解变量名称

csv - 使用 Spark 将 CSV 转换为 parquet,保留分区

python - 从 Spark (pyspark) 管道内的 StringIndexer 阶段获取标签

apache-spark - Spark 中 bigint 的兼容数据类型是什么?我们如何将 bigint 转换为 spark 兼容的数据类型?

scala - 缓存与 localCheckpoint 以及如何阻止 Spark 删除它?