Spark任务反序列化时间
Spark task deserialization time
我正在 运行 执行 Spark SQL 作业,查看主 UI 时,任务反序列化时间可能需要 12 秒,计算时间可能需要 2 秒。
让我介绍一下背景:
1- 任务很简单:运行 在 PostgreSQL 数据库中查询并在 Spark 中计算结果。
2- 当 运行 在一个有 2 个以上工作人员(其中一个 driver)的集群上运行并将任务发送给另一个工作人员时,就会出现反序列化问题。
3- 我必须为 Postgres 使用 JDBC driver,并且我 运行 每个作业都使用 Spark 提交。
我的问题:
我是否每次都将打包的 jar 作为作业的一部分提交,这就是任务反序列化时间过长的原因吗?如果是这样,我怎样才能将所有东西一次运送给工人,然后在随后的工作中已经拥有那里需要的一切?
有没有办法让 SparkContext
在作业 (spark-submit) 之间保持活动状态,从而减少反序列化时间?
无论如何,任何可以帮助不支付 des 的东西。每次我 运行 集群中的作业。
感谢您的宝贵时间,
干杯
据我所知,YARN 支持缓存应用程序 jar,以便每次应用程序运行时都可以访问它们:请参阅 property spark.yarn.jar。
为了支持作业之间的共享 SparkContext 并避免初始化它的开销,有一个项目 spark-jobserver 用于此目的。
我正在 运行 执行 Spark SQL 作业,查看主 UI 时,任务反序列化时间可能需要 12 秒,计算时间可能需要 2 秒。
让我介绍一下背景:
1- 任务很简单:运行 在 PostgreSQL 数据库中查询并在 Spark 中计算结果。
2- 当 运行 在一个有 2 个以上工作人员(其中一个 driver)的集群上运行并将任务发送给另一个工作人员时,就会出现反序列化问题。
3- 我必须为 Postgres 使用 JDBC driver,并且我 运行 每个作业都使用 Spark 提交。
我的问题:
我是否每次都将打包的 jar 作为作业的一部分提交,这就是任务反序列化时间过长的原因吗?如果是这样,我怎样才能将所有东西一次运送给工人,然后在随后的工作中已经拥有那里需要的一切?
有没有办法让 SparkContext
在作业 (spark-submit) 之间保持活动状态,从而减少反序列化时间?
无论如何,任何可以帮助不支付 des 的东西。每次我 运行 集群中的作业。
感谢您的宝贵时间,
干杯
据我所知,YARN 支持缓存应用程序 jar,以便每次应用程序运行时都可以访问它们:请参阅 property spark.yarn.jar。
为了支持作业之间的共享 SparkContext 并避免初始化它的开销,有一个项目 spark-jobserver 用于此目的。