获取java.lang.OutOfMemoryError:提交pyspark应用程序

时间:2017-02-23 19:59:55

标签: apache-spark pyspark

我使用spark-submit命令在32核,64 GB服务器上运行pyspark应用程序。

申请中的步骤

  1. df1 =从csv文件(field1,field2,field3,field4)加载500万个数据集。

  2. df2 =从mongodb加载5亿条目(使用spark mongo适配器)(field1,field2,field3)。

  3. 左连接操作(抛出异常java.lang.OutOfMemoryError:Java堆空间):

    df_output = df1.join(df2,                [“field1”,“field2”,“field3”],                 “left_outer”)。选择( “*”)

  4. 使用带附加模式的df_output更新mongo集合。

  5. conf / spark-env.sh中的配置:

    • SPARK_EXECUTOR_INSTANCES = 10
    • SPARK_EXECUTOR_CORES = 3
    • SPARK_EXECUTOR_MEMORY = 5GB
    • SPARK_WORKER_CORES = 30
    • SPARK_WORKER_MEMORY = 50GB

    并且有更多参数设置为默认值。

    使用命令设置master和1 worker。

    • sbin/start-master.sh
    • /sbin/start-slave.sh master_ip

    使用命令

    运行脚本

    nohup bin/spark-submit --packages org.mongodb.spark:mongo-spark-connector_2.11:2.0.0 --master master_ip ../test_scripts/test1.py > /logs/logs.out &

    调整配置参数以获得此数据集的最佳性能的最佳方法应该是什么?我们应该如何为任何数据集配置上述参数?

0 个答案:

没有答案