首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java堆空间问题

Java堆空间问题
EN

Stack Overflow用户
提问于 2017-05-31 21:46:32
回答 2查看 1.5K关注 0票数 1

我正在尝试访问蜂箱拼板表,并将其加载到Pandas数据帧中。我使用的是pyspark,我的代码如下所示:

代码语言:javascript
复制
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堆的形式失败:

线程“任务-结果-getter-2”java.lang.OutOfMemoryError中的异常: Java堆空间

以下是有关环境的其他一些信息:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2017-06-01 21:09:26

我原来的堆空间问题现在已经解决了,似乎我的驱动程序内存不是最佳的。由于容器当时已经创建了,因此我不得不在CDH管理器控制台中将其设置为spark环境属性,因此,从吡火花客户端设置驱动程序内存不会生效。为此,我转到Cloudera > Spark > Configuration > Gateway >(安全阀),用于火花-conf/火花-defaults.conf,我添加了spark.driver.memory=10g,并解决了Java堆问题。我认为当您在Yarn-客户端上运行星火应用程序时,这将是可行的。

然而,在spark作业完成后,应用程序挂在toPandas上,有人知道需要设置哪些特定属性来转换toPandas数据吗?

-Rahul

票数 0
EN

Stack Overflow用户

发布于 2018-08-27 11:19:50

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

代码语言:javascript
复制
spark = SparkSession.builder.appName("something").config("spark.driver.memory","10G").getOrCreate()

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44295182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档