首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >sparklyr的Spark内存问题

sparklyr的Spark内存问题
EN

Stack Overflow用户
提问于 2018-06-01 01:22:17
回答 1查看 663关注 0票数 0

我在Spark running和sparklyr上有一些奇怪的问题。

我目前在一台R生产服务器上,通过spark://<my server>:7077以客户端模式连接到my Spark Cluster,然后从MS SQL server拉取数据。

我最近可以做到这一点,没有任何问题,但我最近得到了一个更大的集群,现在有内存问题。

首先,我在处理过程中遇到了莫名其妙的“内存不足”错误。这种情况发生了几次,然后我开始得到“内存不足,无法创建新线程”的错误。我在R生产服务器和Spark服务器上检查了我正在使用的线程数与我的用户的最大线程数,但我没有接近最大线程数。

我重新启动了我的主节点,现在得到:

# There is insufficient memory for the Java Runtime Environment to continue.
# Cannot create GC thread. Out of system resources.

到底怎么回事??

以下是我的规格:

Spark独立运行,通过root user.Spark版本2.2.1 Spark版本0.6.2 via Linux运行

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 02:56:38

我偶然发现了这一点。事实证明,当你在客户端模式下的外部spark集群上运行操作时,它仍然在本地运行Spark。我认为本地Spark没有分配足够的内存,这是导致错误的原因。我的解决方法很简单:

而不是通过以下方式分配内存:

spark_conf = spark_config()
spark_conf$`spark.driver.memory` <- "8G"
spark_conf$`spark.executor.memory` <- "12G"

我使用:

spark_conf = spark_config()
spark_conf$`sparklyr.shell.driver-memory` <- "8G"
spark_conf$`sparklyr.shell.executor-memory` <- "12G"

前者将直接在集群上设置资源(spark context)。后者在spark上下文以及sparklyr应用程序的其余部分中设置它。

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

https://stackoverflow.com/questions/50629658

复制
相关文章

相似问题

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