【Spark學習】Apache Spark配置

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等)。

相關文章
相關標籤/搜索