[jvm-packages] delete all constraints from spark layer about obj and eval metrics and handle error in jvm layer (#4560)

* temp

* prediction part

* remove supported*

* add for test

* fix param name

* add rabit

* update rabit

* return value of rabit init

* eliminate compilation warnings

* update rabit

* shutdown

* update rabit again

* check sparkcontext shutdown

* fix logic

* sleep

* fix tests

* test with relaxed threshold

* create new thread each time

* stop for job quitting

* udpate rabit

* update rabit

* update rabit

* update git modules
This commit is contained in:
Nan Zhu
2019-06-27 08:47:37 -07:00
committed by GitHub
parent dd01f7c4f5
commit abffbe014e
11 changed files with 143 additions and 51 deletions

View File

@@ -17,6 +17,7 @@
package org.apache.spark
import java.net.URL
import java.util.concurrent.atomic.AtomicBoolean
import org.apache.commons.logging.LogFactory
@@ -123,18 +124,30 @@ private[spark] class TaskFailedListener extends SparkListener {
case taskEndReason: TaskFailedReason =>
logger.error(s"Training Task Failed during XGBoost Training: " +
s"$taskEndReason, stopping SparkContext")
// Spark does not allow ListenerThread to shutdown SparkContext so that we have to do it
// in a separate thread
val sparkContextKiller = new Thread() {
override def run(): Unit = {
LiveListenerBus.withinListenerThread.withValue(false) {
SparkContext.getOrCreate().stop()
}
}
}
sparkContextKiller.setDaemon(true)
sparkContextKiller.start()
TaskFailedListener.startedSparkContextKiller()
case _ =>
}
}
}
object TaskFailedListener {
var killerStarted = false
private def startedSparkContextKiller(): Unit = this.synchronized {
if (!killerStarted) {
// Spark does not allow ListenerThread to shutdown SparkContext so that we have to do it
// in a separate thread
val sparkContextKiller = new Thread() {
override def run(): Unit = {
LiveListenerBus.withinListenerThread.withValue(false) {
SparkContext.getOrCreate().stop()
}
}
}
sparkContextKiller.setDaemon(true)
sparkContextKiller.start()
killerStarted = true
}
}
}