【问题标题】:GC error while running spark job运行火花作业时出现 GC 错误
【发布时间】:2017-06-20 08:02:07
【问题描述】:

我正在运行以下spark 代码,并且每次它都会耗尽内存。数据量不是很大,但超时它会抱怨GC 错误,所以garbage collector 收集的对象太多。从表中选择少量列和数据不应包含太多开销,并且在堆上创建太多对象。我是否通过触发选择查询创建了太多不可变对象。不知道为什么它抱怨GC 错误。

object O {  

def main(args: Array[String]): Unit = {  

val log = LogManager.getRootLogger    
val TGTTBL = "XYZ"  
val outputLocation = "somepath"  
val dql = "select col1, col2, col3 from SOURCETBL where condition"
val appName = "createDFS";
val spark = SparkSession.builder()
.appName(appName)
.enableHiveSupport()
.config("hive.exec.dynamic.partition", "true")
.config("hive.exec.dynamic.partition.mode", "nonstrict")
.getOrCreate()

 log.warn("Select Query........................")
 log.warn(dql)
 val tblDF = spark.sql(dql)

 def getCols(df: DataFrame): String = {
 val cols = df.columns;
 val colString = cols.map(c => s"$c    


${df.schema(s"$c").dataType}").dropRight(3).mkString(",").replace("Type", "")

 return colString;
 }

 val colString = getCols(tblDF)
 log.warn("Create Table def........................")
 log.warn(colString)
 spark.sql(s"drop table if exists $TGTTBL")
 spark.sql(s"Create external table if not exists $TGTTBL ($colString)" +
        s" partitioned by (col1 string, col2 string, col3 string) stored as orc location \'$outputLocation\'")

 tblDF.write.partitionBy("col1", "col2", ).format("orc").mode("overwrite").save(outputLocation)

}
}


**Error - 
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded**

【问题讨论】:

  • 您是在本地还是集群上运行它?内存配置呢?
  • 使用 hive-context 怎么样??
  • 这个答案对你有帮助吗? stackoverflow.com/a/22742982/6059889
  • @Shankar - 我在集群上运行。数据低于 1gb,我提供了足够的内存和执行程序来运行作业。
  • @SteffenSchmitz - 所描述的场景都不适合我的情况。我之前读过。我将尝试使用 hive 上下文,但不确定它与我使用的有什么不同。

标签: scala apache-spark apache-spark-sql spark-dataframe


【解决方案1】:

我在尝试读取 spark sql 时不断收到上述错误。所以我从输入文件创建了一个 RDD[Object] 并使用 rdd.toDF() 方法将其转换为数据帧。这解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 2019-08-10
    • 1970-01-01
    • 2017-12-11
    • 2017-06-18
    • 2016-08-05
    • 2019-03-27
    相关资源
    最近更新 更多