获取java.lang.outofmemoryerror:提交Pyspark申请



我使用Spark-Submit命令在32 Core,64 GB服务器中运行Pyspark应用程序。

应用程序中的步骤

  1. df1 =从CSV文件(Field1,Field2,Field3,Field4)。

  2. df2 =负载来自MongoDB(使用Spark Mongo适配器)(field1,field2,field3)。

  3. 左加入操作(步骤投掷异常Java.lang.outofmemoryerror:Java堆空间

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

  4. 使用DF_OUTPUT使用附录模式更新Mongo收集。

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

  • spark_executor_instances = 10
  • spark_executor_cors = 3
  • spark_executor_memory = 5GB
  • spark_worker_cors = 30
  • spark_worker_memory = 50GB

,还有更多参数设置为默认值。

设置主人和1个带有命令的工人。

  • 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 &

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

如果遇到内存问题,请考虑一些事情。确保相应地设置下面的参数。

spark.executor.memory = yarn.nodemanager.resource.memory-mb *(spark.executor.cores.cores/yarn.nodemanager.resource.resource.cpu-vcores)

spark.yarn.executor.memoryoverhead = spark.executor.memory

的15-20%

尝试将SPARK.SQL.SHUFFLE.OUTPUT.PARTITIONS参数增加到2000年(默认200)。希望这有帮助

最新更新