【Spark學習】Apache Spark配置


Spark版本:1.1.1

本文系從官方文檔翻譯而來,轉載請尊重譯者的工作,注明以下鏈接:

http://www.cnblogs.com/zhangningbo/p/4137969.html 

 

 

Spark配置

 

 

Spark屬性

動態加載Spark屬性

查看Spark屬性

可用屬性

大部分用於控制內部設置的屬性都有合理的默認值。一部分最通用的選項設置如下:

應用程序屬性

屬性名稱 默認值 含義
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等)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM