【问题标题】:Java heap space issueJava堆空间问题
【发布时间】:2017-05-31 21:46:32
【问题描述】:

我正在尝试访问 hive parquet 表并将其加载到 Pandas 数据框。我正在使用 pyspark,我的代码如下:

import pyspark
import pandas
from pyspark import SparkConf
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql import HiveContext

conf = (SparkConf().set("spark.driver.maxResultSize", "10g").setAppName("buyclick").setMaster('yarn-client').set("spark.driver.memory", "4g").set("spark.driver.cores","4").set("spark.executor.memory", "4g").set("spark.executor.cores","4").set("spark.executor.extraJavaOptions","-XX:-UseCompressedOops"))

sc = SparkContext(conf=conf)    
sqlContext = HiveContext(sc)
results = sqlContext.sql("select * from buy_click_p")
res_pdf = results.toPandas()

这一直失败,所以我更改为 conf 参数,并且每次它都因为 Java 堆问题而失败:

线程“task-result-getter-2”java.lang.OutOfMemoryError 中的异常:Java 堆空间

这里有一些关于环境的其他信息:

Cloudera CDH version : 5.9.0
Hive version : 1.1.0
Spark Version : 1.6.0
Hive table size : hadoop fs -du -s -h /path/to/hive/table/folder --> 381.6 M  763.2 M

Free memory on box : free -m 
            total  used    free    shared buffers cached
Mem:        23545 11721   11824        12     258   1773

【问题讨论】:

标签: apache-spark pyspark heap-memory


【解决方案1】:

我原来的堆空间问题现在已经解决了,看来我的驱动内存不是最佳的。从 pyspark 客户端设置驱动程序内存不会生效,因为此时容器已经创建,因此我必须在 CDH 管理器控制台中的 spark 环境属性中设置它。要设置它,我去了 Cloudera Manager > Spark > Configuration > Gateway > Advanced > 在 Spark Client Advanced Configuration Snippet (Safety Valve) for spark-conf/spark-defaults.conf 我添加了 spark.driver.memory=10g 和 Java heap 问题解决了。我认为当您在 Yarn-Client 上运行 spark 应用程序时,这将起作用。

但是,spark 作业完成后,应用程序挂在 toPandas 上,有没有人知道需要设置哪些特定属性才能将数据帧转换为 toPandas ?

-拉胡尔

【讨论】:

    【解决方案2】:

    我也有同样的问题。更改驱动程序内存后,它对我有用。 我的代码中的一组:

    spark = SparkSession.builder.appName("something").config("spark.driver.memory","10G").getOrCreate()
    

    我设置为 10G,但这取决于您的环境,您的集群有多大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 2021-09-09
      • 2022-01-12
      • 1970-01-01
      • 2020-10-07
      相关资源
      最近更新 更多