Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark spark job陷入困境的原因是什么_Apache Spark_Spark Streaming Kafka - Fatal编程技术网

Apache spark spark job陷入困境的原因是什么

Apache spark spark job陷入困境的原因是什么,apache-spark,spark-streaming-kafka,Apache Spark,Spark Streaming Kafka,我正在运行Spark 2.3.1独立群集。 我的工作是每2分钟消耗一次卡夫卡小批量,并将聚合写入某个商店。作业如下所示: val stream = KafkaUtils.createDirectStream(...) stream.foreachRDD { rdd => val offsetRanges = rdd.asInstanceOf[HasOffsetRanges].offsetRanges stream.asInstanceOf[CanCommitOffsets].c

我正在运行Spark 2.3.1独立群集。 我的工作是每2分钟消耗一次卡夫卡小批量,并将聚合写入某个商店。作业如下所示:

val stream = KafkaUtils.createDirectStream(...)
stream.foreachRDD { rdd =>
   val offsetRanges = rdd.asInstanceOf[HasOffsetRanges].offsetRanges
   stream.asInstanceOf[CanCommitOffsets].commitAsync(offsetRanges)
}

stream.map(x=> Row(...))
.flatMap(r=>...)
.map(r=> (k,r))
.reduceByKey((r1, r2) => r)
.map { case (_, v) => v} 
.foreachRDD { (rdd, time) => // write data}
这项工作还可以,运行了将近一周。但后来,它堆积起来了——我看到批处理在运行,但在卡夫卡,开始出现延迟,偏移量也变得不变

在日志中,有以下消息,我可以看到它们每2分钟重复一次(IMHO,批处理间隔)。因此,我认为这项工作因重试而被绞死

[org.apache.spark.scheduler.TaskSetManager] Starting task 14.0 in stage 13042.0 (TID 7732814, 10.9.6.53, executor 5, partition 14, PROCESS_LOCAL, 7846 bytes)
[org.apache.spark.scheduler.TaskSetManager] Starting task 0.0 in stage 13042.0 (TID 7732815, 10.9.6.77, executor 3, partition 0, PROCESS_LOCAL, 7846 bytes)
[org.apache.spark.scheduler.TaskSetManager] Starting task 1.0 in stage 13042.0 (TID 7732816, 10.9.6.61, executor 2, partition 1, PROCESS_LOCAL, 7846 bytes)
[org.apache.spark.scheduler.TaskSetManager] Starting task 4.0 in stage 13042.0 (TID 7732812, 10.9.6.65, executor 1, partition 4, PROCESS_LOCAL, 7846 bytes)
[org.apache.spark.scheduler.TaskSetManager] Starting task 28.0 in stage 13042.0 (TID 7732813, 10.9.6.62, executor 4, partition 28, PROCESS_LOCAL, 7846 bytes)
[org.apache.spark.scheduler.TaskSchedulerImpl] Adding task set 13042.0 with 186 tasks
[org.apache.spark.scheduler.DAGScheduler] Submitting 186 missing tasks from ShuffleMapStage 13042 (MapPartitionsRDD[117358] at map at MyAgg.scala:373) (first 15 tasks are for partitions Vector(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14))
重新启动解决了问题。

我的问题-知道为什么会发生这种情况吗?我可以做什么/配置来防止这种情况再次发生?

您有内存转储吗?spark需要很多内存来进行聚合不幸的是,我不需要。作业已重新启动。但是我没有看到任何关于内存的日志错误你有内存转储吗?spark需要很多内存来进行聚合不幸的是,我不需要。作业已重新启动。但我没有看到任何关于内存的日志错误