Spark參數配置說明


1  修改$SPARK_HOME/conf目錄下的spark-defaults.conf文件

添加以下配置項

spark.sql.hive.convertMetastoreParquet       false

hive.exec.compress.output     false

如果spark.sql.hive.convertMetastoreParquet不設置為false,前台清單預覽看到的內容為亂碼。

由於parquet格式的文件內置了壓縮,故輸出結果不需要進行壓縮,如果設置為壓縮,清單下載功能異常。

2 修改$SPARK_HOME/conf目錄下spark-env.sh文件,設置以下參數:

SPARK_EXECUTOR_INSTANCES=11

SPARK_EXECUTOR_CORES=2

SPARK_EXECUTOR_MEMORY=1G

SPARK_DRIVER_MEMORY=3G

根據需要配置,如果設置剛好滿足所有內存,則沒有多余的內存供其他task任務的執行

2.1 參數SPARK_EXECUTOR_INSTANCES

該參數決定了yarn集群中,最多能夠同時啟動的EXECUTOR的實例個數。Yarn中實際能夠啟動的最大Executors的數量會小於等於該值。如果不能確定最大能夠啟動的Executors數量,建議將該值先設置的足夠大。(就是設置盡量大)

2.2 SPARK_EXECUTOR_CORES  該參數為設置每個EXECUTOR能夠使用的CPU core的數量。

Yarn集群能夠最多並行的Task數據為SPARK_EXECUTOR_INSTANCES乘        以SPARK_EXECUTOR_CORES一般設置為2

 也就是說如果spark_executor_instances=11 則最多並行的Task數為22

2.3 SPARK_EXECUTOR_MEMORY

該參數設置的是每個EXECUTOR分配的內存的數量。需要注意的是,該內存數量是SPARK_EXECUTOR_CORES中設置的內核數共用的內存數量。

例如上面示例中,就是2核cpu公用1G內存。

2.4 SPARK_DRIVER_MEMORY

該參數設置的是DRIVER分配的內存的大小。也就是執行start-thriftserver.sh機器上分配給thriftserver的內存大小。

 

3 yarn.nodemanager.resource.memory-mb

$HADOOP_HOME/etc/hadoop目錄下的yarn-site.xml文件中,參數yarn.nodemanager.resource.memory-mb配置了每台機器yarn能夠使用的物理內存大小,單位是MB。

如果發現集群內內存使用量明顯比屋里內存小,可以修改該參數

4 spark.yarn.executor.memoryOverhead

該參數指定了每個executor在分配的內存之外,能夠額外獲得的內存的大小,默認是7%


免責聲明!

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



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