如何设置配置以使 Spark/Yarn 作业更快?
How to set configurations to make Spark/Yarn job faster?
我是 Spark 的新手。我一直在阅读有关 Spark 配置和要设置的不同属性的信息,以便我们可以优化作业。但我不确定如何确定应该设置什么?
比如我创建了一个r3.8x Large类型的集群(1Master和10 slaves)
如何设置:
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 个组 bas 和 3 个广播地图。
谢谢
为了调整您的应用程序,您需要了解一些事情
1) 您需要监控您的应用程序,无论您的集群是否未得到充分利用,您创建的应用程序使用了多少资源
可以使用各种工具进行监控,例如。 Ganglia 在 Ganglia 中,您可以找到 CPU、内存和网络使用情况。
2) 根据对 CPU 和内存使用情况的观察,您可以更好地了解您的应用程序需要什么样的调优
形成你的火花点
在火花-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
希望对您有所帮助!!
我是 Spark 的新手。我一直在阅读有关 Spark 配置和要设置的不同属性的信息,以便我们可以优化作业。但我不确定如何确定应该设置什么?
比如我创建了一个r3.8x Large类型的集群(1Master和10 slaves)
如何设置:
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 个组 bas 和 3 个广播地图。
谢谢
为了调整您的应用程序,您需要了解一些事情
1) 您需要监控您的应用程序,无论您的集群是否未得到充分利用,您创建的应用程序使用了多少资源
可以使用各种工具进行监控,例如。 Ganglia 在 Ganglia 中,您可以找到 CPU、内存和网络使用情况。
2) 根据对 CPU 和内存使用情况的观察,您可以更好地了解您的应用程序需要什么样的调优
形成你的火花点
在火花-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
希望对您有所帮助!!