繁体   English   中英

python程序“ java.lang.OutOfMemoryError:Java堆空间”的火花错误

[英]Spark error for python program “java.lang.OutOfMemoryError: Java heap space”

我在Spark上运行我的python kmeans程序,如下所示:

./bin/spark-submit --master spark://master_ip:7077 my_kmeans.py

python kmeans主要程序如下所示:

sc = spark.sparkContext
# data
X = jl.load('X.jl.z')
data_x = sc.parallelize(X)
# kmeans
model = KMeans.train(data_x, 10000, maxIterations=5)

文件'X.jl.z'大小约为100M。

但是我得到了火花错误:

  File "/home/xxx/tmp/spark-2.0.2-bin-hadoop2.7/my_kmeans.py", line 24, in <module>
    data_x = sc.parallelize(X)
py4j.protocol.Py4JJavaError: An error occurred while calling    z:org.apache.spark.api.python.PythonRDD.readRDDFromFile.    
  : java.lang.OutOfMemoryError: Java heap space

我知道如何为Java程序修改JVM堆大小。 但是,如何增加python程序的堆大小?

尝试添加分区数:

data_x = sc.parallelize(X,n)
# n = 2-4 partitions for each CPU in your cluster

要么 :

可以在集群模式下通过spark.driver.memory设置最大堆大小,在客户端模式下可以通过--driver-memory命令行选项设置最大堆大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM