Spark的资源调优方法
Spark的资源调优方法。
主要就是通过调整spark应用的相关参数来达到控制spark的cpu、内存,executor的数量等方式来优化
https://spark.apache.org/docs/1.6.1/configuration.html
https://spark.apache.org/docs/1.6.1/running-on-yarn.html
spark-submit脚本的资源参数
--master MASTER_URL :指定spark在哪里运行,默认就是local,当不给定的时候使用默认值,(只有spark-submit提交的时候有效)
--deploy-mode DEPLOY_MODE:指定driver在哪里运行,client表示spark-submit脚本执行的机器上运行driver
cluster模式表示driver在任意一台机器上开启一个driver进程
默认的就是client模式
--class CLASS_NAME:指定运行main函数的类名称
--conf PROP=VALUE :指定一个configurtion中的配置信息,eg:--conf "spark.ui.port=5050"
在一个应用中可以多次使用这个参数
--driver-memory MEM :给定driver进程使用内存的大小,默认就是1g
--executor-memory MEM :给定每个executor的内存的大小,默认也是1G
--proxy-user NAME:运行spark程序的用户名,默认就是当前执行spark程序的用户
standalone + cluster
--driver-cores NUM? ? ? ? ? Cores for driver (Default: 1).
driver运行的时候,需要多少个cpu,默认是1个
Spark standalone or Mesos + cluster
--supervise :这个参数的含义是指当driver宕机的时候,自动在其他的worker机器上重新启动一个driver进程
Spark standalone and Mesos?
--total-executor-cores NUM:指定一个spark应用程序总的cpu个数。默认集群中的全部可利用的cpu
Spark standalone and YARN?
--executor-cores NUM:给定每一个executor的cpu数量,在standalone的情况下,默认就是全部的可利用的cpu
在yarn的模式下,默认就是1个
YARN:
--driver-cores NUM :指定yarn cluster模式下,driver使用的cpu的数量,默认是1个。
--num-executors NUM:指定executor的使用cpu的数量,默认就是2个。
spark.cleaner.ttl:给定spark应用中清空元数据的间隔时间(元数据保留多久)。
比如说spark.cleaner.ttl = 1d sparkstreaming是一直在指定的,所以需要定时的去清理元数据。
spark.task.cpus:指定task运行的时候所需要的cpu的数量 默认是1个。