簡體   English   中英

在紗線上配置執行程序和驅動程序內存

[英]Configuring Executor and Driver memory in Spark-on-Yarn

我對在Spark 1.5.2中配置執行程序和驅動程序內存感到困惑。

我的環境設置如下:

3 Node MAPR Cluster - Each Node: Memory 256G, 16 CPU 
Hadoop 2.7.0 
Spark 1.5.2 - Spark-on-Yarn

輸入數據信息:

Hive的460 GB Parquet格式表我正在使用spark-sql通過spark-on-yarn查詢hive上下文,但是它比Hive慢很多,並且不確定Spark的內存配置是否正確,

這些是我的配置

    export SPARK_DAEMON_MEMORY=1g
    export SPARK_WORKER_MEMORY=88g

    spark.executor.memory              2g
    spark.logConf                      true
    spark.eventLog.dir                 maprfs:///apps/spark
    spark.eventLog.enabled             true
    spark.serializer                   org.apache.spark.serializer.KryoSerializer
    spark.driver.memory                5g
    spark.kryoserializer.buffer.max    1024m

如何避免Spark java.lang.OutOfMemoryError:Java堆空間異常和GC開銷限制超出了異常! ???

非常感謝您的協助!

乍一看,您耗盡了執行程序的內存。 我建議增加他們的記憶力。

請注意,SPARK_WORKER_MEMORY僅在獨立模式下使用。 SPARK_EXECUTOR_MEMORY在YARN模式下使用。

如果您沒有在集群上運行其他任何東西,則可以嘗試以下配置:

spark.executor.memory   16g
spark.executor.cores    1
spark.executor.instances 40
spark.driver.memory  5g (make it bigger if expected 
                         final result dataset is larger)

我不建議設置較大的執行程序內存,因為這通常會增加GC時間。 我看到的另一件事是,這些實例是內存優化的。 如果適合您的情況,請三思。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM