今天就跟大家聊聊有關Spark屬性的配置方式有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)建站服務項目包括紅寺堡網(wǎng)站建設、紅寺堡網(wǎng)站制作、紅寺堡網(wǎng)頁制作以及紅寺堡網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,紅寺堡網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到紅寺堡省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
1、Spark properties:這個可以控制應用程序的絕大部分屬性。并且可以通過 SparkConf對象或者Java 系統(tǒng)屬性進行設置;
2、環(huán)境變量(Environment variables):這個可以分別對每臺機器進行相應的設置,比如IP。這個可以在每臺機器的$SPARK_HOME/ conf/spark-env.sh腳本中進行設置;
3、日志:所有的日志相關的屬性可以在log4j.properties文件中進行設置。
下面對這三種屬性設定進行詳細的說明。
一、Spark properties
Spark properties可以控制應用程序的絕大部分屬性,并且可以分別在每個應用上進行設置。這些屬性可以直接在SparkConf對象上設定,該對象可以傳遞給SparkContext。SparkConf對象允許你去設定一些通用的屬性(比如master URL、應用的名稱等),這些屬性可以傳遞給set()方法的任意key-value對。如下:
val conf = new SparkConf() .setMaster("local") .setAppName("CountingSheep") .set("spark.executor.memory", "1g") val sc = new SparkContext(conf)
動態(tài)加載Spark屬性
在一些場景中,你可能想避免在代碼中將SparkConf對象的屬性進行設死;比如,你可能想在不同的master上面或者不同內(nèi)存容量運行你的應用程序。這就需要你運行程序的時候進行設置,Spark允許你創(chuàng)建一個空的conf對象,如下:
val sc = new SparkContext(new SparkConf())
然后你可以在運行的時候通過命令行進行一些屬性的配置:
./bin/spark-submit --name "My app" --master local[4] --conf spark.shuffle.spill=false --conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" myApp.jar
Spark shell和 spark-submit工具支持兩種方式來動態(tài)加載配置屬性。第一種是命令行方式,比如--master;spark-submit工具可以通過--conf標記接收任何的Spark屬性。運行 ./bin/spark-submit --help將會顯示全部的選項。
./bin/spark-submit工具也會從 conf/spark-defaults.conf配置文件中讀取配置選項。 在conf/spark-defaults.conf配置文件中,每行是key-value對,中間可以是用空格進行分割,也可以直接用等號進行分割。如下:
spark.master spark://iteblog.com:7077 spark.executor.memory 512m spark.eventLog.enabled true spark.serializer org.apache.spark.serializer.KryoSerializ
每個值將作為一個flags傳遞到應用中并個SparkConf對象中相應的屬性進行合并。通過SparkConf 對象配置的屬性優(yōu)先級最高;其次是對spark-submit 或 spark-shell通過flags配置;最后是spark-defaults.conf文件中的配置。
哪里可以查看配置好的Spark屬性
在應用程序?qū)腤EB UI(http://
二、環(huán)境變量
有很大一部分的Spark設定可以通過環(huán)境變量來進行設定。這些環(huán)境變量設定在conf/spark-env.sh 腳本文件中(如果你是windows系統(tǒng),那么這個文件名稱是conf/spark-env.cmd)。在 Standalone 和 Mesos模式下,這個文件可以設定一些和機器相關的信息(比如hostname)。
需要注意,在剛剛安裝的Spark中conf/spark-env.sh文件是不存在的。但是你可以通過復制conf/spark-env.sh.template文件來創(chuàng)建,你的確保這個復制之后的文件是可運行的。
下面的屬性是可以在conf/spark-env.sh文件中配置
JAVA_HOME Java的安裝目錄 PYSPARK_PYTHON Python binary executable to use for PySpark. SPARK_LOCAL_IP IP address of the machine to bind to. SPARK_PUBLIC_DNS Hostname your Spark program will advertise to other machines.
對于 standalone 模式的集群除了上面的屬性可以配置外,還有很多的屬性可以配置,具體我就不說了,自己看文檔去。
三、日志配置
Spark用log4j來記錄日志。你可以通過配置log4j.properties來設定不同日志的級別、存放位置等。這個文件默認也是不存在的,你可以通過復制log4j.properties.template文件來得到。
看完上述內(nèi)容,你們對Spark屬性的配置方式有哪些有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。