spark執行方式及其常用引數
阿新 • • 發佈:2019-01-08
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