apache-spark - Spark任务持续时间差异

标签 apache-spark scheduled-tasks apache-spark-sql

我正在运行将数据(.csv)从 s3 加载到 DataFrame 中的应用程序,然后将这些 Dataframe 注册为临时表。之后,我使用 SparkSQL 连接这些表,最后将结果写入数据库。目前对我来说瓶颈的问题是,我觉得任务分配不均匀,我没有得到任何好处或并行化以及集群内的多个节点。更准确地说,这是问题阶段任务持续时间的分布 task duration distribution 我有办法强制执行更平衡的分配吗?也许手动编写map/reduce函数? 不幸的是,这个阶段还有 6 个任务仍在运行(1.7 小时 atm),这将证明更大的偏差。

最佳答案

有两种可能的可能性:一种是在您的控制之下,并且..不幸的是一种可能 ..

  • 数据存在偏差。检查分区的大小是否相对相似 - 例如在三到四倍之内。
  • Spark 任务运行时的固有可变性。我曾见过 Spark Standalone、Yarn 和 Mesos 上的落后者在没有明显原因的情况下出现大幅延迟的行为。症状是:
    • 托管落后任务的节点上长时间(分钟)发生很少或没有 CPU 或磁盘事件
    • 数据大小与落后者没有明显的相关性
    • 不同节点/工作线程在后续运行同一作业时可能会遇到延迟

需要检查一件事:执行 hdfs dfsadmin -reporthdfs fsck 来查看 hdfs 是否正常。

关于apache-spark - Spark任务持续时间差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37899448/

相关文章:

scheduled-tasks - 计划任务正在 Windows Server 2012 上排队

scheduled-tasks - Web 应用程序的计划任务

scala - Spark-sql/Scala 中的 Unpivot 列名称是数字

apache-spark - Spark2.4.6 没有 hadoop : A JNI error has occurred

performance - Spark 最近 30 天过滤器,提高性能的最佳方法

python - python KCL 连接到 kinesis 流时出现异常

windows-7 - Windows 7 是否支持 ITaskScheduler?

python - 使用 PySpark 将复杂 RDD 转换为扁平化 RDD

apache-spark - Spark 结合了 DataFrame 和 GraphX

scala - Hadoop与Spark不匹配的问题?