如何计算本地机器中的Spark driver和executor内存?

问题描述 投票:0回答:1

我是spark的初学者,通常在某些执行中会出现java.lang.OutOfMemoryError: Java heap space is raise:

java.lang.OutOfMemoryError: Java heap space at java.base/java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:61)
java.base/java.nio.ByteBuffer.allocate(ByteBuffer.java:348)
org.apache.parquet.bytes.HeapByteBufferAllocator.allocate(HeapByteBufferAllocator.java:32)
org.apache.parquet.hadoop.ParquetFileReader$ConsecutivePartList.readAll(ParquetFileReader.java:1696)
org.apache.parquet.hadoop.ParquetFileReader.readNextRowGroup(ParquetFileReader.java:925)
org.apache.parquet.hadoop.ParquetFileReader.readNextFilteredRowGroup(ParquetFileReader.java:956)
org.apache.parquet.hadoop.InternalParquetRecordReader.checkRead(InternalParquetRecordReader.java:126)
org.apache.parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:225)
org.apache.parquet.hadoop.ParquetRecordReader.nextKeyValue(ParquetRecordReader.java:207)
org.apache.spark.sql.execution.datasources.RecordReaderIterator.hasNext(RecordReaderIterator.scala:39)
org.apache.spark.sql.execution.datasources.RecordReaderIterator$$anon$1.hasNext(RecordReaderIterator.scala:61)

我已经查找了可能由于缺少

--driver-memory
--executor-memory
参数而导致的原因,该 Spark 托管在 docker 容器中,并且 pyspark 脚本使用 Spark-submit 运行:

docker exec -it pyspark_container \
    /usr/local/lib/python3.10/dist-packages/pyspark/bin/spark-submit \
    /spark_files/mapping.py;

我的电脑规格:

8核 30GB 内存 1.2TB 固态硬盘

我想知道是否可能,以及增加这些参数是否有意义,因为我不在集群中,以及如何进行分配计算。

非常感谢您的帮助

python scala apache-spark pyspark executor
1个回答
0
投票

由于您在

--master
命令中没有使用
spark-submit
参数,因此您正在本地模式下使用 Spark。这意味着所有驱动程序和执行程序进程都发生在同一台机器上。

在这种情况下,不使用

--executor-memory
参数。正是
--driver-memory
参数使您的本地集群拥有更多内存。

由于我们不知道您的数据是什么样的,因此很难说在这里选择合适的大小。

--driver-memory
的默认值为1g。由于您的机器上有 30G RAM,因此您可以增加此内存。

尝试类似:

docker exec -it pyspark_container \
    /usr/local/lib/python3.10/dist-packages/pyspark/bin/spark-submit \
    --driver-memory Xg \
    /spark_files/mapping.py;

其中

X
是对您的数据有意义的数字。如果您拥有整台机器,您可以尝试使用一大块可用内存,例如
--driver-memory 25g

© www.soinside.com 2019 - 2024. All rights reserved.