当前位置: 首页 > 知识库问答 >
问题:

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

段干飞翮
2023-03-14

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

申请步骤:

>

  • df1 = 从 csv 文件(字段 1、字段 2、字段 3、字段 4)加载 5 亿个数据集。

    df2 = 从 mongodb 加载 5 亿个条目(使用 Spark mongo 适配器)(字段 1、字段 2、字段 3)。

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

    df_output=df1.join(df2,["字段1","字段2","字段3"],"left_outer")。

    使用df_output和append模式更新mongo集合

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

    • 火花执行器安装=10
    • 火花_EXECUTOR_CORES=3
    • SPARK_EXECUTOR_MEMORY=5GB
    • 火花_WORKER_CORES=30
    • SPARK_WORKER_MEMORY=50GB

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

    使用命令设置主机和1个工作机。

      < Li > < code > sbin/start-master . sh < Li > < code >/sbin/start-slave . sh master _ IP

    使用命令运行脚本

    nohup-bin/spark提交--packages org.mongodb.spark:mongo-spark-connector_2.11:2.0.0--master master_ip../test_scripts/test1.py

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


  • 共有1个答案

    郎喜
    2023-03-14

    如果遇到内存问题,需要考虑的几件事。确保相应地设置下面的参数。

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

    spark.yarn.executor.memory间接费用=spark.executor.memory的15-20%

    尝试将spark.sql.shuffle.output.partitions参数增加到大于2000(默认值200)。希望这有帮助

     类似资料:
    • 在Spark bin目录下的spark-submit可以用来在集群上启动应用程序。它可以通过统一的接口使用Spark支持的所有集群管理器 ,所有你不必为每一个管理器做相应的配置。 用spark-submit启动应用程序 bin/spark-submit脚本负责建立包含Spark以及其依赖的类路径(classpath),它支持不同的集群管理器以及Spark支持的加载模式。 ./bin/spark-s

    • 执行时发生错误 来自不在CDH env中的airflow docker容器(不由CDH CM管理)。斯兰杰。py是简单的从配置单元表中选择*。 应用程序在CDH纱线上被接受并执行两次并出现此错误: 我们假设缺少“一些. jar和java依赖项”。有什么想法吗? 详细信息 在执行spark cmd之前,存在有效的krb票证 如果我们使用jars/path/to/spark-hive\U 2.11-2

    • 自从 v0.34.0,Electron 就允许提交应用包到 Mac App Store (MAS)。这个向导提供的信息有: 如何提交应用和 MAS 构建的限制。 Note: Submitting an app to Mac App Store requires enrolling in the Apple Developer Program, which costs money. Mac App

    • 本指南提供以下相关资讯: 如何在 macOS 上为 Electron 应用签名; 如何在 Mac App Store (MAS) 上提交 Electron 应用; 对于 MAS 构建版本的局限性。 要求 要为 Electron 应用签名,则必须首先安装下列应用: Xcode 11 或更高版本。 electron-osx-sign npm 模块. 您还必须注册一个苹果开发者帐户,并加入 苹果开发者计

    • 问题内容: 我有6个选项,我想获取选中的值以将它们存储在第二页的变量中。我该怎么做呢? 和页面: 如果我删除,我会打开颜色,当我这样做时会收到一条通知,说: 数组到字符串的转换 我想要的是选中复选框的值,因此我可以将其存储在变量中。 问题答案: 我最喜欢的一种好方法,我敢肯定,很多人都会利用它来输出您选择的每种颜色,并在屏幕上彼此下方显示。 在使用复选框时,您别无选择,只能使用,这就是为什么只从数

    • 问题内容: 您能否解释一下如何在我的子类中获取实例?可能吗?我已尝试按照以下代码片段的方式进行操作,但它似乎不起作用- 未设置: web.xml: 问题是我需要从中获取上下文参数。如果有其他方法,请给我一个提示,我将不胜感激。 我了解注记可能并非为此目的。实际上,我不需要自己。如果只有我可以从web.xml中获取上下文参数,我将非常高兴。 这是我真正需要的一个例子: 谢谢。 问题答案: 从Jers