Обработчик необработанных исключений по умолчанию в процессе драйвера Spark - PullRequest
2 голосов
/ 29 марта 2019

Я написал искровую библиотеку в Scala, где я хотел бы сделать какое-то действие, прежде чем произойдет необработанное исключение в процессе драйвера (зарегистрируйте его, увеличьте показатель ошибки, ...).Я несколько раз пытался использовать setUncaughtExceptionHandler в текущем потоке, но это не работает.

Thread.currentThread().setUncaughtExceptionHandler(new UncaughtExceptionHandler {
  override def uncaughtException(t: Thread, th: Throwable): Unit = {
    // do something
}

Если я создаю другой поток, он работает нормально.Есть идеи, что я могу сделать, чтобы достичь своей цели?

Я вижу, что у Spark есть значение по умолчанию Exception handler, которое, возможно, не может быть перезаписано?https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/util/SparkUncaughtExceptionHandler.scala

...