欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spark三種屬性配置方式詳解

 更新時(shí)間:2017年10月20日 10:01:44   作者:小狼_百度  
有時(shí)間還是多學(xué)習(xí)知識(shí)比較好,這篇文章主要介紹了Spark三種屬性配置方式詳解,具有一定參考價(jià)值,需要的朋友可以了解下。

隨著Spark項(xiàng)目的逐漸成熟, 越來(lái)越多的可配置參數(shù)被添加到Spark中來(lái)。在Spark中提供了三個(gè)地方用于配置:

  1、Spark properties:這個(gè)可以控制應(yīng)用程序的絕大部分屬性。并且可以通過(guò) SparkConf對(duì)象或者Java 系統(tǒng)屬性進(jìn)行設(shè)置;
  2、環(huán)境變量(Environment variables):這個(gè)可以分別對(duì)每臺(tái)機(jī)器進(jìn)行相應(yīng)的設(shè)置,比如IP。這個(gè)可以在每臺(tái)機(jī)器的$SPARK_HOME/ conf/spark-env.sh腳本中進(jìn)行設(shè)置;
  3、日志:所有的日志相關(guān)的屬性可以在log4j.properties文件中進(jìn)行設(shè)置。

  下面對(duì)這三種屬性設(shè)定進(jìn)行詳細(xì)的說(shuō)明。

一、Spark properties

  Spark properties可以控制應(yīng)用程序的絕大部分屬性,并且可以分別在每個(gè)應(yīng)用上進(jìn)行設(shè)置。這些屬性可以直接在SparkConf對(duì)象上設(shè)定,該對(duì)象可以傳遞給SparkContext。SparkConf對(duì)象允許你去設(shè)定一些通用的屬性(比如master URL、應(yīng)用的名稱等),這些屬性可以傳遞給set()方法的任意key-value對(duì)。如下:

val
conf =
new SparkConf()
       .setMaster("local")
       .setAppName("CountingSheep")
       .set("spark.executor.memory", "1g")
val
sc =
new SparkContext(conf)

動(dòng)態(tài)加載Spark屬性

  在一些場(chǎng)景中,你可能想避免在代碼中將SparkConf對(duì)象的屬性進(jìn)行設(shè)死;比如,你可能想在不同的master上面或者不同內(nèi)存容量運(yùn)行你的應(yīng)用程序。這就需要你運(yùn)行程序的時(shí)候進(jìn)行設(shè)置,Spark允許你創(chuàng)建一個(gè)空的conf對(duì)象,如下:

val
sc =
new SparkContext(new
SparkConf())

然后你可以在運(yùn)行的時(shí)候通過(guò)命令行進(jìn)行一些屬性的配置:

./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工具支持兩種方式來(lái)動(dòng)態(tài)加載配置屬性。第一種是命令行方式,比如--master;spark-submit工具可以通過(guò)--conf標(biāo)記接收任何的Spark屬性。運(yùn)行 ./bin/spark-submit --help將會(huì)顯示全部的選項(xiàng)。

   ./bin/spark-submit工具也會(huì)從 conf/spark-defaults.conf配置文件中讀取配置選項(xiàng)。 在conf/spark-defaults.conf配置文件中,每行是key-value對(duì),中間可以是用空格進(jìn)行分割,也可以直接用等號(hào)進(jìn)行分割。如下:

spark.master      spark://iteblog.com:7077
spark.executor.memory  512m
spark.eventLog.enabled true
spark.serializer    org.apache.spark.serializer.KryoSerializ

每個(gè)值將作為一個(gè)flags傳遞到應(yīng)用中并個(gè)SparkConf對(duì)象中相應(yīng)的屬性進(jìn)行合并。通過(guò)SparkConf 對(duì)象配置的屬性優(yōu)先級(jí)最高;其次是對(duì)spark-submit 或 spark-shell通過(guò)flags配置;最后是spark-defaults.conf文件中的配置。

哪里可以查看配置好的Spark屬性

  在應(yīng)用程序?qū)?yīng)的WEB UI(http://<driver>:4040)上的Environment標(biāo)簽下面將會(huì)顯示出該應(yīng)用程序的所有Spark配置選項(xiàng)。在你想確定你的配置是否正確的情況下是非常有用的。需要注意的是,只有顯示通過(guò)spark-defaults.conf 或SparkConf 進(jìn)行配置的屬性才會(huì)在那個(gè)頁(yè)面顯示。其他所有沒(méi)有顯示的屬性,你可以認(rèn)為這些屬性的值為默認(rèn)的。

二、環(huán)境變量

  有很大一部分的Spark設(shè)定可以通過(guò)環(huán)境變量來(lái)進(jìn)行設(shè)定。這些環(huán)境變量設(shè)定在conf/spark-env.sh 腳本文件中(如果你是windows系統(tǒng),那么這個(gè)文件名稱是conf/spark-env.cmd)。在 Standalone 和 Mesos模式下,這個(gè)文件可以設(shè)定一些和機(jī)器相關(guān)的信息(比如hostname)。

  需要注意,在剛剛安裝的Spark中conf/spark-env.sh文件是不存在的。但是你可以通過(guò)復(fù)制conf/spark-env.sh.template文件來(lái)創(chuàng)建,你的確保這個(gè)復(fù)制之后的文件是可運(yùn)行的。

  下面的屬性是可以在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.

對(duì)于 standalone 模式的集群除了上面的屬性可以配置外,還有很多的屬性可以配置,具體我就不說(shuō)了,自己看文檔去。

三、日志配置

  Spark用log4j來(lái)記錄日志。你可以通過(guò)配置log4j.properties來(lái)設(shè)定不同日志的級(jí)別、存放位置等。這個(gè)文件默認(rèn)也是不存在的,你可以通過(guò)復(fù)制log4j.properties.template文件來(lái)得到。

總結(jié)

以上就是本文關(guān)于Spark三種屬性配置方式詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Spark實(shí)現(xiàn)K-Means算法代碼示例、淺談七種常見(jiàn)的Hadoop和Spark項(xiàng)目案例、Spark的廣播變量和累加器使用方法代碼示例等,有什么問(wèn)題可以隨時(shí)留言,小編會(huì)及時(shí)回復(fù)大家的。

相關(guān)文章

  • 淺析kubernetes的控制器和標(biāo)簽

    淺析kubernetes的控制器和標(biāo)簽

    這篇文章主要介紹了kubernetes的控制器和標(biāo)簽的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用k8s,感興趣的朋友可以了解下
    2021-04-04
  • 如何給k8s集群里的資源打標(biāo)簽

    如何給k8s集群里的資源打標(biāo)簽

    k8s集群,節(jié)點(diǎn)如果有多個(gè)角色,需要標(biāo)記出來(lái),可以給對(duì)應(yīng)的節(jié)點(diǎn)打上標(biāo)簽,方便后續(xù)了解節(jié)點(diǎn)的功能,這篇文章主要介紹了如何給k8s集群里的資源打標(biāo)簽,需要的朋友可以參考下
    2023-02-02
  • Kubernetes有狀態(tài)應(yīng)用管理StatefulSet使用詳解

    Kubernetes有狀態(tài)應(yīng)用管理StatefulSet使用詳解

    這篇文章主要為大家介紹了Kubernetes有狀態(tài)應(yīng)用管理StatefulSet使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • RFO SIG之openEuler AWS AMI 制作詳解

    RFO SIG之openEuler AWS AMI 制作詳解

    這篇文章主要為大家介紹了RFO SIG之openEuler AWS AMI 制作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • k8s?pod如何使用sriov

    k8s?pod如何使用sriov

    這篇文章主要介紹了k8s?pod如何使用sriov問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • kubernetes YAML文件的使用

    kubernetes YAML文件的使用

    這篇文章主要介紹了kubernetes YAML文件的使用,幫助大家更好的理解和學(xué)習(xí)使用kubernetes,感興趣的朋友可以了解下
    2021-04-04
  • k8s設(shè)置非強(qiáng)一致反親和性示例

    k8s設(shè)置非強(qiáng)一致反親和性示例

    這篇文章主要為大家介紹了k8s設(shè)置非強(qiáng)一致反親和性示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Kubernetes存儲(chǔ)系統(tǒng)數(shù)據(jù)持久化管理詳解

    Kubernetes存儲(chǔ)系統(tǒng)數(shù)據(jù)持久化管理詳解

    這篇文章主要為大家介紹了Kubernetes存儲(chǔ)系統(tǒng)數(shù)據(jù)持久化管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 使用kubeadm部署多節(jié)點(diǎn)集群

    使用kubeadm部署多節(jié)點(diǎn)集群

    這篇文章介紹了使用kubeadm部署多節(jié)點(diǎn)集群的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說(shuō)明

    詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說(shuō)明

    這篇文章主要為大家介紹了詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評(píng)論