【问题标题】:Setting pyspark jvm memory (Xmx)设置 pyspark jvm 内存 (Xmx)
【发布时间】:2020-05-25 19:19:41
【问题描述】:

当我运行一个用 pyspark 编写的 spark 作业时,我运行了一个 jvm,它有一个我似乎无法设置的 Xmx1g 设置。这是ps aux 输出:

 /usr/lib/jvm/jre/bin/java -cp /home/ec2-user/miniconda3/lib/python3.6/site-packages/pyspark/conf:/home/****/miniconda3/lib/python3.6/site-packages/pyspark/jars/* -Xmx1g org.apache.spark.deploy.SparkSubmit pyspark-shell

我的问题是,我该如何设置这个属性?我可以使用 SPARK_DAEMON_MEMORYSPARK_DRIVER_MEMORY 设置主内存,但这不会影响 pyspark 的衍生进程。

我已经尝试过JAVA_OPTS 或实际查看包/bin 文件,但不明白这是在哪里设置的。

在工作上下文中设置 spark.driver.memoryspark.executor.memory 也没有帮助。

编辑:

在使用 spark-submit 提交作业后(代码和基础设施是从独立配置中进化而来的) - 一切都解决了。以编程方式提交(使用SparkConf)似乎覆盖了一些集群的设置。

【问题讨论】:

  • 您能解释一下您要解决的问题吗? PySpark 将尊重spark.*.memory 属性,与任何其他包相同,但 JVM 堆与 PySpark 程序几乎无关。 spark.*.memoryOverhead 选项通常更到位。而SPARK_DAEMON_MEMORY 是集群管理器属性,而不是应用程序,因此与spark.*.memory 没有真正的关系(更不用说附近没有 Python 代码)。
  • 如果你想限制 Python 堆大小 - How to limit the heap size?
  • 我不确定我是否理解。这不是主(集群管理器)进程,也不是 python 进程。这是一个额外的 java 进程(运行 python-shellSparkSubmit)在使用 pyspark 提交作业时产生。它从包本身添加到类路径 jar 并运行 jvm 来提交作业。我想改变它的堆大小。有可能吗?
  • 除了 JVM 驱动程序之外,PySpark 没有单独的 JVM,它尊重spark.driver.memory。然而,这不是 Python 驱动程序内存。而我上面指出的是SPARK_DAEMON_MEMORY 是独立集群配置,与应用无关(如果造成混淆,请见谅)。
  • 我认为(如果我错了,请纠正我)这里的混淆是 start-master.sh 所做的。 Master,是一个部分资源管理器(这里使用SPARK_DAEMON_MEMORY),它与驱动程序或应用程序无关。它是完全不同的,甚至不是强制性的组件。 spark.driver.memory 是驱动程序属性。它专门连接到由SparkSubmit 启动的JVM - 这就是您使用spark.driver.memory 的地方。最后是 Python 驱动程序,它是在使用 PySpark 时用于检测 JVM 驱动程序的纯 Python 进程。那里没有 JVM,所以 JVM 堆设置。有意义吗?

标签: apache-spark pyspark


【解决方案1】:

你可以在 spark-submit 后使用 --conf spark.driver.extraJavaOptions 和 --conf spark.executor.extraJavaOptions,例如:

SPARK_LOCATION/spark-submit --verbose --master yarn-cluster --num-executors 15 --conf spark.driver.cores=3 ....... --conf spark.driver.extraJavaOptions="-Xss10m -XX:MaxPermSize=1024M " --conf spark.executor.extraJavaOptions="-Xss10m -XX:MaxPermSize=512M " .....

【讨论】:

    猜你喜欢
    • 2011-02-20
    • 2021-12-12
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2021-03-29
    • 2021-10-05
    • 2012-08-30
    相关资源
    最近更新 更多