Spark版本:1.1.1html
本文系從官方文檔翻譯而來,轉載請尊重譯者的工做,註明如下連接:python
http://www.cnblogs.com/zhangningbo/p/4137969.html apache
Spark配置windows
Spark屬性緩存
動態加載Spark屬性安全
查看Spark屬性網絡
可用屬性app
大部分用於控制內部設置的屬性都有合理的默認值。一部分最通用的選項設置以下:ide
應用程序屬性編碼
屬性名稱 | 默認值 | 含義 |
spark.app.name | (none) | 應用程序名稱。該參數的值會出如今UI和日誌記錄中。 |
spark.master | (none) | 要鏈接的集羣管理器。詳見支持的masterURL列表。 |
spark.executor.memory | 512m | 每一個executor進程要用的內存量。與JVM內存字符串的格式相同(如,512m,2g)。 |
spark.serializer | org.apache.spark.serializer.JavaSerializer | 用於序列化對象(以序列化形式經過網絡發送或者在內存中緩存的對象)的類,默認的Java序列化適用於任何可序列化的Java對象,但速度很慢。所以,在須要較快速度的場合,咱們推薦使用org.apache.spark.serializer.KryoSerializer並配置Kryo序列化。該參數的值能夠是org.apache.spark.serializer的任何子類。 |
spark.kryo.registrator | (none) | 若是你使用Kryo序列化,那麼,須要設置該類以便使用Kryo來註冊你的自定義類。該參數應當設置成一個擴展KryoRegistrator的類。詳見調優指南。 |
spark.local.dir | /tmp | 在Spark中「草稿」空間所用的路徑,包括存儲於磁盤上的map輸出文件和RDD。該參數值應當指向一個快速的本地磁盤路徑。也能夠是多個以逗號分隔的位於不一樣磁盤的路徑列表。注意:從Spark1.0之後,該參數會被集羣管理器所設置的SPARK_LOCAL_DIRS(Standalone,Mesos模式下)或者LOCAL_DIRS(YARN模式下)環境變量覆蓋。 |
spark.logconf | false | 當SparkContext啓動時,以INFO日誌級別記錄有效的SparkConf設置。 |
除了以上屬性,下面的屬性也可用 ,並且在某些情形下會頗有用:
運行時環境
屬性名稱 | 默認值 | 含義 |
spark.executor.extraJavaOptions | (none) | 傳遞給executor的額外JVM選項字符串。例如,GC設置或其餘日誌設置。注意,使用該選項來設置spark屬性或heap大小是不合法的。Spark屬性應當使用SparkConf對象設置,或者在腳本spark-submit中使用spark-defaults.conf文件。Heap大小能夠用spark.executor.memory來設置。 |
spark.executor.extraClassPath | (none) | 追加到executor classpath中的額外classpath條目。該參數主要是爲了與老版本的spark後向兼容。用戶一般不須要設置該選項。 |
spark.executor.extraLibraryPath | (none) | 設置一個啓動executor JVM時使用的特殊庫路徑。 |
spark.files.userClassPathFirst | false | (實驗特性)當把用戶添加的jar包和Spark自有jar包中的類加載到executor時,是否優先處理前者,再處理後者。該特性能夠用於減小Spark依賴和用戶依賴之間的衝突。當前該特性是實驗性的。 |
spark.python.worker.memory | 512m | 彙集過程當中每一個python worker進程所用的內存量,與Java內存字符串的格式相同(如512m,2g)。若是進程在彙集期間所用的內存超過了該值,那麼,就會把數據寫入磁盤。 |
spark.executorEnv.[EnvironmentVariableName] | (none) | 把EnvironmentVariableName指定的環境變量添加到executor進程中。用戶能夠指定多個值來設置多個環境變量。 |
spark.mesos.executor.home | driver side SPARK_HOME | 設置Spark在Mesos集羣中的executor主機上所安裝的路徑。默認狀況下,executor簡單地使用driver上的Spark home路徑(executor不可見),注意,若是Spark二進制包不是經過spark.executor.uri來指定的,那麼該值就是確切的。 |
spark.mesos.executor.memoryOverhead | executor memory * 0.07,最小值爲384 | 該值是spark.executor.memory的附加值,以MB爲單位,用於計算Mesos任務的內存總量。384表明開銷爲384MB。此外,硬編碼的7%爲最小開銷比例。最終的開銷是兩者中最大的,即max(spark.mesos.executor.memoryOverhead,spark.executor.memory * 7%) |
Shuffle行爲
屬性名稱 | 默認值 | 含義 |
Spark UI
屬性名稱 | 默認值 | 含義 |
壓縮與序列化
屬性名稱 | 默認值 | 含義 |
執行行爲
屬性名稱 | 默認值 | 含義 |
網絡
屬性名稱 | 默認值 | 含義 |
調度
屬性名稱 | 默認值 | 含義 |
安全
屬性名稱 | 默認值 | 含義 |
Spark Streaming
屬性名稱 | 默認值 | 含義 |
集羣管理器
每一個集羣管理器都有額外的配置選項。這些配置參見每種模式各自的頁面:
YARN
Mesos
Standalone
環境變量
某些Spark屬性能夠經過環境變量來配置,這些變量能夠從conf/spark-env.sh腳本(windows平臺爲conf/spark-env.cmd)中讀取。在Standalone和Mesos模式下,該腳本文件能夠給出主機相關信息,好比主機名,也能夠做爲運行本地Spark應用程序或者子任務腳本時的源文件。
注意,conf/spark-env.sh默認安裝狀況下是不存在的。可是,你能夠經過複製conf/spark-env.sh.template來建立它並確保其爲可執行的。
如下變量能夠在spark-env.sh文件中設置:
環境變量 | 含義 |
JAVA_HOME | Java安裝的位置(若是沒有在默認的環境變量PATH中指定,就採用該值) |
PYSPARK_PYTHON | PySpark所用的Python二進制可執行文件 |
SPARK_LOCAL_IP | 主機所綁定的IP地址 |
SPARK_PUBLIC_DNS | Spark程序通告給其餘主機的主機名 |
除了以上變量,還有一些建立Spark Standalone集羣腳本的選項,好比每臺主機所用的CPU核數和最大內存。
因爲spark-env.sh是腳本,因此有些選項能夠經過程序來設置——例如,你能夠經過查詢指定網卡的IP地址來肯定SPARK_LOCAL_IP。
配置日誌記錄
Spark使用log4j來記錄日誌。你能夠在路徑conf中添加log4j.properties文件來配置該功能。還有一種啓動方法就是在原地複製log4j.properties.template文件。
覆蓋配置路徑
要指定其餘配置路徑而不使用默認的「SPARK_HOME/conf」 ,你能夠設置SPARK_CONF_DIR環境變量。Spark將會使用該變量指定路徑中的配置文件(spark-defaults.conf,spark-env.sh,log4j.properties等)。