1.配置預(yù)寫日志spark.streaming.receiver.writeAheadLog.enable
自 Spark 1.2 以來, 我們引入了寫入日志來實現(xiàn)強大的容錯保證.如果啟用, 則從 receiver 接收的所有數(shù)據(jù)都將寫入配置 checkpoint 目錄中的寫入日志.這可以防止 driver 恢復(fù)時的數(shù)據(jù)丟失, 從而確保零數(shù)據(jù)丟失(在 [容錯語義]可以通過設(shè)置為 true
來啟用此功能.
2.接受速率spark.streaming.receiver.maxRate
設(shè)置最大接收速率 - 如果集群資源不夠大, streaming 應(yīng)用程序能夠像接收到的那樣快速處理數(shù)據(jù), 則可以通過設(shè)置 記錄/秒 的最大速率限制來對 receiver 進行速率限制.
3.自動整調(diào)速率spark.streaming.backpressure.enabled
我們引入了一個稱為背壓的功能, 無需設(shè)置此速率限制, 因為Spark Streaming會自動計算速率限制, 并在處理條件發(fā)生變化時動態(tài)調(diào)整速率限制.
4.存儲水平org.apache.spark.storage.StorageLevel
設(shè)置可見之前的緩存文章
5.中間數(shù)據(jù)spark.local.dir用于寫(RDD Cache庸毫、Shuffle)
可以配置:
1 多個路徑到多個磁盤增加整體IO帶寬
2 如果存儲設(shè)備的讀寫速度不同入录,可以在較快的存儲設(shè)備上配置更多的目錄增加被使用的比例
3 SPARK_LOCAL_DIRS(Standalone, Mesos) LOCAL_DIRS(YARN)參數(shù)會覆蓋這個配置
6.內(nèi)存配置spark.storage.memoryFraction,spark.storage.memory
決定了每個Executor可用內(nèi)存大小喂链,而spark.storage.memoryFraction決定了這部分內(nèi)存中有多少可以用于Memory Store管理RDD Cache的數(shù)據(jù)
7.container最大內(nèi)存yarn.scheduler.maximum-allocation-mb
這個參數(shù)表示每個container能夠申請到的最大內(nèi)存,一般是集群統(tǒng)一配置。一個container可以有多個executor
更多配置https://blog.csdn.net/qq_25302531/article/details/80623791
8.預(yù)留內(nèi)存spark.yarn.executor.memoryOverhead
executor執(zhí)行的時候,用的內(nèi)存可能會超過executor-memoy衙四,所以會為executor額外預(yù)留一部分內(nèi)存。spark.yarn.executor.memoryOverhead代表了這部分內(nèi)存患亿。
9.進程最大內(nèi)存executor-memory
參數(shù)說明:該參數(shù)用于設(shè)置每個Executor進程的內(nèi)存传蹈。Executor內(nèi)存的大小,很多時候直接決定了Spark作業(yè)的性能步藕。num-executors乘以executor-memory=最大內(nèi)存i限制
10.流接受時間spark.streaming.blockInterval
設(shè)置Spark Streaming里Stream Receicer生成block的時間間隔卡睦,默認為200ms。這個時間間隔應(yīng)該被StreamingBatch的時間間隔整除
spark.streaming.blockQueueSize決定了streamBlock最多能存儲的容量漱抓,默認為10
11.數(shù)據(jù)本地性