大数据

标题: Spark提交Job如何设置参数 [打印本页]

作者: Zeng    时间: 2015-4-23 00:43
标题: Spark提交Job如何设置参数
本帖最后由 Zeng 于 2015-4-23 00:47 编辑

      最近需要提交Spark Streaming的Job,如何设置参数成为一个问题,根据Spark的文档,在基于yarn模式时,可以指定如下参数:
  1. bin/spark-submit \
  2.   --class org.apache.spark.examples.SparkPi \
  3.   --master yarn-cluster \  # can also be `yarn-client` for client mode
  4.   --executor-memory 20G \
  5.   --num-executors 50 \
  6.   /path/to/examples.jar \
  7.   1000
复制代码
     其实,这里缺乏对--executor-memory和--num-executors的解释。

      通过参考网上文档,可以计算出这些参数的大小,比如有5个node的集群,每个node有4核和30.5G的内存(AWS r3.xlarge配置),
      那么,可以在每个node上设置3个executor,每个executor有1核,留出1核给系统,另外,有个node只有2个executor,还得留出1核给AM。
      executor-cores=1
      executor-memory=(30.5-1)/3*(1-0.07)=9G
      num-executors=3*4+2=14

      为了提升Spark集群的处理能力,需要优化并行参数,其中最为关键的是设置RDD的分区数spark.default.parallelism,根据Spark调优文档,可以设置为集群的CPU核数的2-3倍。在本例中,可以设置spark.default.parallelism为14*3=42。spark.default.parallelism的设置文件在<Spark安装目录>/conf/spark-defaults.conf。





欢迎光临 大数据 (http://www.bigbase.cn/) Powered by Discuz! X3.2