Mongodb 在Spark执行器中引发异常时会发生什么?
我有一个spark结构化流媒体工作,我正在使用Mongodb 在Spark执行器中引发异常时会发生什么?,mongodb,apache-spark,Mongodb,Apache Spark,我有一个spark结构化流媒体工作,我正在使用mapPartitions,其中它连接到mongo客户端,并使用mongo中的数据丰富来自kafka的流数据。有时候,mongo无法连接,我在一个executor任务中遇到异常。但这项工作并没有停止,但也停止了使用卡夫卡的数据。它进入挂起状态 现在我在做平常的事情, try{ //enrich data } catch { case e: Exception => { e.printStackTrace() sys.
mapPartitions
,其中它连接到mongo客户端,并使用mongo中的数据丰富来自kafka的流数据。有时候,mongo无法连接,我在一个executor任务中遇到异常。但这项工作并没有停止,但也停止了使用卡夫卡的数据。它进入挂起状态
现在我在做平常的事情,
try{
//enrich data
} catch {
case e: Exception => {
e.printStackTrace()
sys.exit(0)
}
} finally {
//close mongo connection
}
如果我在执行器中抛出异常,驱动程序是否捕获异常?另外,是否有更好的方法来处理此类连接异常,例如重新连接后执行器重新启动。在Spark和Hadoop中分别设置以下配置以重试 spark.task.maxFailures warn.resourcemanager.am.max-tests 重试后,异常将被抛出回驱动程序 另外,挂起状态可能是您的mongo客户端等待超时。有关设置较短超时属性的信息,请参阅下文