Apache spark 如何在生产集群中为spark作业进行性能调整?

Apache spark 如何在生产集群中为spark作业进行性能调整?,apache-spark,Apache Spark,让我们假设我们有一个spark工作,我们正在进行所有的性能调整,并使其运行在配置有限的开发环境中(1节点32GB RAM 500GB硬盘) 很明显,我们的生产集群将会很高,在开发环境中测量的调优参数如何有助于生产集群。建议直接在生产集群中调整作业吗? 它是如何实时完成的?无耻的插件(作者)在大多数情况下都会尝试闪烁。真正的问题不是应用程序是否运行缓慢,而是它是否能够扩展。对于大多数应用程序,答案都是有限的 spark应用程序的结构对其可扩展性提出了重要限制。一个阶段中的任务数量、阶段之间的依赖关

让我们假设我们有一个spark工作,我们正在进行所有的性能调整,并使其运行在配置有限的开发环境中(1节点32GB RAM 500GB硬盘)

很明显,我们的生产集群将会很高,在开发环境中测量的调优参数如何有助于生产集群。建议直接在生产集群中调整作业吗? 它是如何实时完成的?

无耻的插件(作者)在大多数情况下都会尝试闪烁。真正的问题不是应用程序是否运行缓慢,而是它是否能够扩展。对于大多数应用程序,答案都是有限的

spark应用程序的结构对其可扩展性提出了重要限制。一个阶段中的任务数量、阶段之间的依赖关系、偏差以及在驱动端完成的工作量是主要的约束条件


Sparklens的最佳功能之一是,它模拟并告诉您spark应用程序将如何在不同的执行器计数下执行。看起来很适合你的问题

在代码、配置级别或两者中进行性能调优?示例:代码级别将使用广播连接进行改进,而配置将优化两个级别的执行器大小,因为很明显,即使在代码级别,我们也将在开发环境中处理小数据集。例如,在Dev和prod中,重新分区是不一样的。我不能代表世界上的每一家公司,但在我工作过的公司中,分布式作业(MapReduce、spark或其他)总是会失败,因为只有在prod中才能看到可伸缩性。因此(对于prod数据调查也是如此),已分配群集资源以在prod群集上运行“dev”作业。当然,理想情况下,您可能希望找到在更小的卷上重现相同问题的方法,以便在prepod中进行调查。但这并不总是可能的。这意味着我们的产品工作包含了大量的指标和监控,以帮助在问题发生时准确定位问题。