1. 程式人生 > >spark執行方式及其常用引數

spark執行方式及其常用引數

 

2016年09月19日 18:27:47 jiewuyou 閱讀數:1224 標籤: spark 更多

個人分類: 雲端計算

所屬專欄: spark私房菜

本文將介紹spark的幾種執行方式,及常用的引數

yarn cluster模式

例行任務一般會採用這種方式執行

指定固定的executor數

作業常用的引數都在其中指定了,後面的執行指令碼會省略

spark-submit \
    --master yarn-cluster \  
    --deploy-mode cluster \                  #叢集執行模式
    --name wordcount_${date} \               #作業名
    --queue production.group.yanghao \       #指定佇列
    --conf spark.default.parallelism=1000 \  #並行度,shuffle後的預設partition數 
    --conf spark.network.timeout=1800s \
    --conf spark.yarn.executor.memoryOverhead=1024 \   #堆外記憶體
    --conf spark.scheduler.executorTaskBlacklistTime=30000 \
    --conf spark.core.connection.ack.wait.timeout=300s \
    --num-executors 200 \                   #executor數目 
    --executor-memory 4G \                  #executor中堆的記憶體
    --executor-cores 2 \                    #executor執行core的數目,設定大於1   
    --driver-memory 2G \                    #driver記憶體,不用過大   
    --class ${main_class} \                 #主類
    ${jar_path} \                           #jar包位置
    param_list \                            #mainClass接收的引數列表

動態調整executor數目

spark-submit \
    --master yarn-cluster \
    --deploy-mode cluster \
    --name wordcount_${date} \
    --queue production.group.yanghao \
    --conf spark.dynamicAllocation.enabled=true \     #開啟動態分配
    --conf spark.shuffle.service.enabled=true \       #shuffle service,可以保證executor被刪除時,shuffle file被保留
    --conf spark.dynamicAllocation.minExecutors=200 \ #最小的executor數目
    --conf spark.dynamicAllocation.maxExecutors=500 \ #最大的executor數目
    --class ${main_class} \
    ${jar_path} \
    param_list
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

yarn client模式

邊寫指令碼,邊在叢集上執行。這樣除錯會很方便

spark-shell \
    --master yarn-client \    
    --queue production.group.yanghao \      #指定佇列
    --num-executors 200 \                   #executor數目 
    --executor-memory 4G \                  #executor中堆的記憶體
    --executor-cores 2 \                    #executor執行core的數目,設定大於1   
    --driver-memory 2G \                    #driver記憶體,不用過大   
    --jars ${jar_path}                      #jar包位置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

yarn cluster模式 vs yarn client模式

yarn cluster模式:spark driver和application master在同一個節點上 
yarn client模式:spark driver和client在同一個節點上,支援shell 
這裡寫圖片描述

參考

http://stackoverflow.com/questions/21138751/spark-java-lang-outofmemoryerror-java-heap-space