我的MapR集群中有两个位置,我的spark作业正在从这两个端点加载数据。其中一个端点具有巨大的数据,而其他端点则相对较少。现在,当我做一个像.reduceByKey或.groupByKey这样的混洗操作时,我得到了OOM异常: "java.lang.OutOfMemoryError: Java heap space
at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
at java.nio.ByteBuffer.allocate(ByteBuffer.java:335)
at org
我似乎无法为应用程序分配核心。这将导致以下(显然是常见的)错误消息:
Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
我在星团里有一个主人和两个奴隶。它们都是8核i7s,内存为16 of .
我在这三种情况下几乎都保留了spark-env.sh,只是指定了主机的IP地址。
我的spark-submit如下:
nohup ./bin/spark-submit
--jars .
我正在读取一个巨大的csv文件,包括39,795,158条记录,并在Azure Databricks上写入MSSQL服务器。Databricks(笔记本)运行在一个具有56 GB内存、16个核心和12个工作人员的集群节点上。
这是我在Python和PySpark中的代码:
from pyspark.sql import *
from pyspark.sql.types import *
from pyspark.sql.functions import *
from time import sleep
url = "jdbc:sqlserver://{0}:{1};database=
我一直在使用trainImplicit时看到这些警告
WARN TaskSetManager: Stage 246 contains a task of very large size (208 KB).
The maximum recommended task size is 100 KB.
然后任务大小开始增加。我试图在输入RDD上调用repartition,但是警告是相同的。
所有这些警告来自ALS迭代,来自flatMap,也来自聚合,例如,flatMap显示这些警告的阶段的起源(w/ Spark1.3.0,但它们也显示在Spark1.3.1中):
org.apache.spark.rd