如何设置配置,使Spark/Yarn的作业更快



我是Spark的新手。我一直在阅读Spark配置和不同的属性设置,以便我们可以优化工作。但是我不确定我怎么知道我应该设置什么?

例如,我创建了一个类型为r3.8x Large的集群(1个主集群和10个从集群)

如何设置:

spark.executor.memory           
spark.driver.memory             
spark.sql.shuffle.partitions
spark.default.parallelism
spark.driver.cores              
spark.executor.cores             
spark.memory.fraction            
spark.executor.instances

还是应该保留默认值?但是离开默认让我的工作变得非常缓慢。我的工作有3个分组和3个广播地图。

谢谢

要调优应用程序,您需要了解以下几点

1)您需要监视您的应用程序,您的集群是否被充分利用,您创建的应用程序使用了多少资源

可以使用各种工具进行监控,例如:从Ganglia你可以找到CPU,内存和网络使用。

2)基于对CPU和内存使用情况的观察,您可以更好地了解您的应用程序需要哪种调优

Form Spark point of you

在spark-defaults.conf

你可以指定哪种类型的序列化需要多少驱动内存和执行内存需要你的应用程序,甚至你可以改变垃圾收集算法。

下面是一些示例,您可以根据您的需求调整此参数

spark.serializer                 org.apache.spark.serializer.KryoSerializer
spark.driver.memory              5g
spark.executor.memory            3g
spark.executor.extraJavaOptions  -XX:MaxPermSize=2G -XX:+UseG1GC
spark.driver.extraJavaOptions    -XX:MaxPermSize=6G -XX:+UseG1GC

详细信息请参考http://spark.apache.org/docs/latest/tuning.html

希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新