各位看到的大俠們,,,,若是有什麼問題,不要拍磚,後期進行完善。謝謝協助完善。 java
幾個比較重要的配置屬性: web
1.手動啓動集羣
數據庫
參數 |
含義 |
-i IP,--ip IP |
要監聽的IP地址或者 DNS 機器名 |
-p PORT,--port PORT |
要監聽的端口 (默認: master 7077 ;worker隨機) |
--webui-port PORT |
web UI端口 (默認: master 8080, worker 8081) |
-c CORES,--cores CORES |
做業可用的CPU內核數量(默認: 全部可用);只在worker上 apache |
-m MEM,--memory MEM |
做業可以使用的內存容量,默認格式1000M或者 2G (默認: 全部RAM去掉給操做系統用的1 GB); 只在worker上。 |
-d DIR,--work-dir DIR |
伸縮空間和日誌輸入的目錄路徑 服務器 (默認: SPARK_HOME/work); 只在worker上 網絡 |
2.集羣啓動腳本 app
環境變量 |
含義 |
SPARK_MASTER_IP |
綁定一個外部IP給master. |
SPARK_MASTER_PORT |
從另一個端口啓動master(默認: 7077) |
SPARK_MASTER_WEBUI_PORT |
Master的web UI端口 (默認: 8080) |
SPARK_WORKER_PORT |
啓動Spark worker 的專用端口(默認:隨機) |
SPARK_WORKER_DIR |
伸縮空間和日誌輸入的目錄路徑(默認: SPARK_HOME/work); |
SPARK_WORKER_CORES |
做業可用的CPU內核數量(默認: 全部可用的); |
SPARK_WORKER_MEMORY |
做業可以使用的內存容量,默認格式1000M或者 2G (默認: 全部RAM去掉給操做系統用的1 GB);注意:每一個做業本身的內存空間由SPARK_MEM決定。 |
SPARK_WORKER_WEBUI_PORT |
worker 的web UI 啓動端口(默認: 8081) |
SPARK_WORKER_INSTANCES |
沒太機器上運行worker數量 (默認: 1). 當你有一個很是強大的計算機的時候和須要多個Spark worker進程的時候你能夠修改這個默認值大於1 . 若是你設置了這個值。要確保SPARK_WORKER_CORE 明確限制每個r worker的核心數, 不然每一個worker 將嘗試使用全部的核心 |
SPARK_DAEMON_MEMORY |
分配給Spark master和 worker 守護進程的內存空間 (默認: 512m) |
SPARK_DAEMON_JAVA_OPTS |
Spark master 和 worker守護進程的JVM 選項(默認: none) |
//按期清理內存資源,這個值不能過小,若是後面的計算須要用到的數據被清除,會帶來其餘問題。同時,也是爲了防止內存溢出.主要出如今streaming模塊中。
spark.cleaner.ttl= ide
spark.home= 測試
//不進行序列化
@transient
//由Spark自行管理持久化RDD,Spark自行判斷哪些RDD是不常持有的,而後去序列化他們,能夠減GC的次數,並且下降Spark對內存的使用,
spark.streaming.unpersist=true ui
//若是該參數沒有配置,則默認實例化org.apache.spark.serializer.JavaSerializer對象。Spark Task 序列化配置。
spark.closure.serializer=
org.apache.spark.serializer.JavaSerializer
//In Spark 1.0 and later spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone and LOCAL_DIRS in YARN. Spark 用於寫中間數據的目錄,其中包括:RDD Cache,Shufflte,Split,能夠配置多個目錄,中間用逗號分隔。
spark.local.dir=
//默認爲""
spark.kryo.classesToRegister
//默認爲:KryoSerializer
//org.apache.spark.serializer.JavaSerializer
spark.serializer=
// Distribution-defined classpath to add to processes
SPARK_DIST_CLASSPATH=
//This is deprecated in Spark 1.4+
// Please use spark {spark.reducer.maxMbInFlight} instead.
//
這個參數用於限制一個ReducerTask向其餘的Executor請求Shuffle數據時所佔用的最大內存數,尤爲是若是網卡是千兆和千兆如下的網卡時。
spark.reducer.maxSizeInFlight=
//默認值爲:host值。
SPARK_PUBLIC_DNS=
//SPARK_JAVA_OPTS was detected。
//This is deprecated in Spark 1.0+.
//Please instead use:
// - ./spark-submit with conf/spark-defaults.conf to set defaults for an application
// - ./spark-submit with --driver-java-options to set -X options for a driver
// - spark.executor.extraJavaOptions to set -X options for executors
// - SPARK_DAEMON_JAVA_OPTS to set java options for standalone daemons (master or worker)
SPARK_JAVA_OPTS=
//SPARK_CLASSPATH was detected。
//This is deprecated in Spark 1.0+.
//Please instead use:
// - ./spark-submit with --driver-class-path to augment the driver classpath
// - spark.executor.extraClassPath to augment the executor classpath
SPARK_CLASSPATH=
// Whether to compress RDD partitions that are stored serialized
spark.rdd.compress=false
// Validate memory fractions
spark.storage.memoryFraction
spark.shuffle.memoryFraction
spark.shuffle.safetyFraction
spark.storage.unrollFraction
spark.storage.safetyFraction
//shuffle過程當中,內存中數據的閥值
spark.shuffle.memoryFraction=
做爲一個保險係數下降實際Shuffle過程所須要的內存值
//做爲一個保險係數,下降實際shuffle過程當中須要的內存值
spark.shuffle.safetyFraction=
//默認值爲:null
spark.metrics.conf
//單位爲秒
spark.storage.cachedPeersTtl=60s
//subDirsPerTachyonDir
spark.externalBlockStore.subDirectories=64
//
spark.streaming.stopGracefullyOnShutdown=false
//////////////////////////////////////////////////////////////////////////////////////////////
// Broadcast 廣播
//////////////////////////////////////////////////////////////////////////////////////////////
//Spark 廣播實現類配置,默認爲TorrentBroadcastFactory,還有一個選項爲HttpBroadcastFactory。broadcast不會內存溢出,但會影響運行效率。
spark.broadcast.factory=org.apache.spark.broadcast.TorrentBroadcastFactory
//默認值爲4M .
//數據庫大小.blockifyObject 依據這個值來劃分數據塊大小
spark.broadcast.blockSize=4m
//
是否要壓縮序列化的RDD分區(好比,
StorageLevel.MEMORY_ONLY_SER
)。在消耗一點額外的CPU時間的代價下,能夠極大的提升減小空間的使用。
spark.broadcast.compress=true
//////////////////////////////////////////////////////////////////////////////////////////////
// Driver
//////////////////////////////////////////////////////////////////////////////////////////////
//driver主機地址端口
spark.driver.port
//driver主機地址
spark.driver.host
//Whether to consider jars provided by the user to have precedence over the Spark jars when loading user classes.
spark.driver.userClassPathFirst=
//
spark.driver.extraJavaOptions=
//
spark.driver.extraClassPath
//
spark.driver.extraLibraryPath
//從Spark1.2開始,該配置被 extraLibraryPath代替。
spark.driver.libraryPath=
//////////////////////////////////////////////////////////////////////////////////////////////
// Shuffle
//////////////////////////////////////////////////////////////////////////////////////////////
//默認爲sort方式。
//shuffle方式對照的類:
// hash -> org.apache.spark.shuffle.hash.HashShuffleManager
// sort -> org.apache.spark.shuffle.sort.SortShuffleManager
// tungsten-sort -> org.apache.spark.shuffle.unsafe.UnsafeShuffleManager
spark.shuffle.manager=sort
//默認值爲:netty
//shuffle的時候數據庫的傳輸方式配置
//如今內部支持兩種,NIO 和 Netty.
spark.shuffle.blockTransferService=netty
//是否壓縮存儲shuffle的輸出數據
spark.shuffle.compress=true
//
是否啓用shuffle輸出臨時文件溢出到磁盤。若是爲false,會有內存溢出的風險
// Whether to compress shuffle output temporarily spilled to disk
spark.shuffle.spill.compress=true
//
spark.shuffle.service.enabled=false
//該配置上爲了解決,shuffle過程當中,文件過多的問題。具體是否須要啓用,請根據測試後,再使用。
spark.shuffle.consolidateFiles=false
//
spark.shuffle.service.port=7337
//
spark.shuffle.sync=true
//This is deprecated in Spark 1.4+
// Please use spark {spark.shuffle.file.buffer.kb} instead.
//
spark.shuffle.file.buffer=
//////////////////////////////////////////////////////////////////////////////////////////////
// Scheduler
//////////////////////////////////////////////////////////////////////////////////////////////
//
spark.scheduler.mode=
// Submit tasks after maxRegisteredWaitingTime milliseconds
// if minRegisteredRatio has not yet been reached
spark.scheduler.maxRegisteredResourcesWaitingTime=30
// Submit tasks only after (registered resources / total expected resources)
// is equal to at least this value, that is double between 0 and 1.
spark.scheduler.minRegisteredResourcesRatio=0
// Periodically revive offers to allow delay scheduling to work,單位爲妙,默認爲1s.
spark.scheduler.revive.interval=1s
//////////////////////////////////////////////////////////////////////////////////////////////
// Executor
//////////////////////////////////////////////////////////////////////////////////////////////
//spark.executor.extraJavaOptions is not allowed to set Spark options。Set them directly on a SparkConf or in a properties file when using ./bin/spark-submit.
spark.executor.extraJavaOptions
//
spark.executor.extraClassPath
//spark.executor.extraJavaOptions is not allowed to alter memory settings。Use spark.executor.memory instead.
spark.executor.memory
//Whether to consider jars provided by the user to have precedence over the Spark jars when loading user classes.
spark.executor.userClassPathFirst=
//This is deprecated in Spark 1.3+
//Please use spark {spark.files.userClassPathFirst} instead.
spark.executor.userClassPathFirst
//This is deprecated in Spark 1.4+
// Please use spark {spark.executor.logs.rolling.size.maxBytes} instead.
//
spark.executor.logs.rolling.maxSize
//
spark.executor.port=0
//////////////////////////////////////////////////////////////////////////////////////////////
// History
//////////////////////////////////////////////////////////////////////////////////////////////
//This is deprecated in Spark 1.3+
//
// spark.history.fs.update.interval.seconds 1.4
// spark.history.fs.updateInterval 1.3
// spark.history.updateInterval 1.3
//此歷史服務器顯示的信息更新時間段。每個更新檢查在持久存儲中的事件日誌中所作的任何更改。
spark.history.fs.update.interval=10s
//This is deprecated in Spark 1.4+
// Please use spark {spark.history.fs.cleaner.interval.seconds} instead.
//
多少次對文件進行清理,纔會刪除文件。
僅刪除
文件都比spark.history.fs.cleaner.maxage大的Age.
spark.history.fs.cleaner.interval=1d
//This is deprecated in Spark 1.4+
// Please use spark {spark.history.fs.cleaner.maxAge.seconds} instead.
//當歷史清潔任務運行時,做業歷史文件會被刪除。
spark.history.fs.cleaner.maxAge=
//指定歷史服務器是否應該按期清理事件日誌。
spark.history.fs.cleaner.enabled=false
//歷史服務器的網絡端口
spark.history.ui.port=18080
//包含應用程序事件日誌將載入歷史服務器的目錄,默認爲:file:/tmp/spark-events
spark.history.fs.logDirectory=file:/tmp/spark-events
//////////////////////////////////////////////////////////////////////////////////////////////
// Master
//////////////////////////////////////////////////////////////////////////////////////////////
//Master地址,默認爲localhost
SPARK_MASTER_HOST
//Master交互端口。默認爲:7077
SPARK_MASTER_PORT=7077
//Master Web UI 端口號。默認端口號爲:8080
SPARK_MASTER_WEBUI_PORT=8080
//////////////////////////////////////////////////////////////////////////////////////////////
// deploy
//////////////////////////////////////////////////////////////////////////////////////////////
//默認值爲:true; 它的用途是在standalone 模式下,節點的自由選擇,這樣能夠更好的進行數據本地性操做。若是配置爲false, 對於計算機中心的工做比較有效。
spark.deploy.spreadOut=true
//默認使用的core 數量爲機器全部的core.core數量必須大於1.
spark.deploy.defaultCores 或 spark.cores.max
//恢復模式默認爲:NONE
//Spark 1.4版本中提供了3種方式:
// ZOOKEEPER:org.apache.spark.deploy.master.ZooKeeperRecoveryModeFactory
// FILESYSTEM:org.apache.spark.deploy.master.FileSystemRecoveryModeFactory
// CUSTOMER:經過指定該值{spark.deploy.recoveryMode.factory}來反射實例化對象。
// 默認爲None方式
spark.deploy.recoveryMode=None
//默認值爲:200
// 最多的應用程序來顯示。舊的應用程序將從用戶界面中刪除,以保持這個限制。默認顯示200個。
spark.deploy.retainedApplications=200
//默認值爲:200;Master節點中,保存最多的Driver記錄
spark.deploy.retainedDrivers=200
//////////////////////////////////////////////////////////////////////////////////////////////
// io
//////////////////////////////////////////////////////////////////////////////////////////////
//This is deprecated in Spark 1.4+
// Please use spark {spark.io.compression.snappy.block.size} instead.
//
spark.io.compression.snappy.blockSize
//This is deprecated in Spark 1.4+
// Please use spark {spark.io.compression.lz4.block.size} instead.
//
spark.io.compression.lz4.blockSize
//////////////////////////////////////////////////////////////////////////////////////////////
// rpc
//////////////////////////////////////////////////////////////////////////////////////////////
//This is deprecated in Spark 1.4+
// Please use spark {spark.akka.num.retries} instead.
//
spark.rpc.numRetries
//This is deprecated in Spark 1.4+
// Please use spark {spark.akka.askTimeout} instead.
//
spark.rpc.askTimeout
//This is deprecated in Spark 1.4+
// Please use spark {spark.akka.lookupTimeout} instead.
//
spark.rpc.lookupTimeout
//////////////////////////////////////////////////////////////////////////////////////////////
// kryoserializer
//////////////////////////////////////////////////////////////////////////////////////////////
//This is deprecated in Spark 1.4+
// Please use spark {spark.kryoserializer.buffer.mb} instead.
//
spark.kryoserializer.buffer
//This is deprecated in Spark 1.4+
// Please use spark {spark.kryoserializer.buffer.max.mb} instead.
//
spark.kryoserializer.buffer.max
//1.4
//Please use spark.kryoserializer.buffer instead. The default value for
//spark.kryoserializer.buffer.mb was previously specified as '0.064'. Fractional values
//are no longer accepted. To specify the equivalent now, one may use '64k'.
spark.kryoserializer.buffer.mb=
//////////////////////////////////////////////////////////////////////////////////////////////
// Worker
//////////////////////////////////////////////////////////////////////////////////////////////
//發送心跳,單位爲:秒
//Send a heartbeat every (heartbeat timeout) / 4 milliseconds
spark.worker.timeout
//默認值:true
spark.worker.cleanup.enabled
//How often worker will clean up old app folders.
//默認值:60 * 30
spark.worker.cleanup.interval
//TTL for app folders/data; after TTL expires it will be cleaned up.
//默認時間間隔爲:7 * 24 * 3600
spark.worker.cleanup.appDataTtl
//指定Worker端口,默認爲:0
SPARK_WORKER_PORT=
//Worker節點運行使用的core數量.默認值爲本機全部可用的core數量。
SPARK_WORKER_CORES=
//Worker內存大小設置,在指定的時候,須要帶上單位(eg. 200M,1G)。
//默認值,首先是經過java.vendor來判斷了一個是不是IBM,而後轉換爲 M.正常獲取的值爲總可用內存大小 - 1024.不然爲1024M。
//若是內存大小小於1GB或者沒法得到該Worker主機內存大小,默認爲512M。
SPARK_WORKER_MEMORY=512
//Worker節點的WebUI 端口號。默認端口號爲:8081
SPARK_WORKER_WEBUI_PORT=8081
//Worker交互超時時間,默認爲60 × 1000 s
spark.worker.timeout=60
//默認值爲:15
spark.dead.worker.persistence=15
//////////////////////////////////////////////////////////////////////////////////////////////
// Yarn
//////////////////////////////////////////////////////////////////////////////////////////////
//默認值爲:true
spark.yarn.submit.waitAppCompletion=true
//
spark.yarn.maxAppAttempts=
//默認值爲true
SPARK_YARN_MODE=true
// Location of any user-defined Spark jars
spark.yarn.jar=
// Internal config to propagate the location of the user's jar to the driver/executors
spark.yarn.user.jar=
// Internal config to propagate the locations of any extra jars to add to the classpath of the executors
spark.yarn.secondary.jars=
//This is deprecated in Spark 1.4+
// Please use spark {spark.yarn.am.waitTime} instead.
//
spark.yarn.applicationMaster.waitTries
//link presented in the distributed cache to the destination
spark.yarn.keytab
//
spark.yarn.user.classpath.first=false
//Cleanup application staging directory.
spark.yarn.preserve.staging.files=false
//默認爲24×60分鐘。單位爲分鐘
spark.yarn.token.renewal.interval=24 * 60
//
spark.yarn.credentials.file=
//1.3
//Please use spark.{driver,executor}.userClassPathFirst instead.
spark.yarn.user.classpath.first=
//////////////////////////////////////////////////////////////////////////////////////////////
// Streaming
//////////////////////////////////////////////////////////////////////////////////////////////
//默認值爲true,表示使用ReliableKafkaReceiver 來接受消息,其中會使用WAL機制,來保證數據的可靠,也保證數據不丟失
spark.streaming.receiver.writeAheadLog.enable=true