2015-02-06 15 views
21

Próbuję wykonać prosty projekt z Apache Spark. To jest mój kod SimpleApp.scalaBŁĘDY Utils: Uncaught wyjątek w wątku SparkListenerBus

/* SimpleApp.scala */ 
import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.SparkConf 

object SimpleApp { 
    def main(args: Array[String]) { 
    val logFile = "/home/hduser/spark-1.2.0-bin-hadoop2.4/README.md" // Should be some file on your system 
    // val conf = new SparkConf().setAppName("Simple Application") 
    val sc = new SparkContext("local", "Simple Job", "/home/hduser/spark-1.2.0-bin-hadoop2.4/") 
    val logData = sc.textFile(logFile, 2).cache() 
    val numAs = logData.filter(line => line.contains("hadoop")).count() 
    val numBs = logData.filter(line => line.contains("see")).count() 
    println("Lines with hadoop: %s, Lines with see: %s".format(numAs, numBs)) 
    } 
} 

kiedy ręcznie wysłać tę pracę, aby iskra z linii poleceń: /home/hduser/spark-1.2.0-hadoop-2.4.0/bin/spark-submit --class "SimpleApp" --master local[4] target/scala-2.10/simple-project_2.10-1.0.jar to zakończą się pomyślnie.

jeśli biegnę z sbt run iz apache iskra usługa jest uruchomiona, to sukces, ale w końcu się zalogować go dać błąd podobny do tego:

15/02/06 15:56:49 ERROR Utils: Uncaught exception in thread SparkListenerBus 
java.lang.InterruptedException 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303) 
    at java.util.concurrent.Semaphore.acquire(Semaphore.java:317) 
    at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1.apply$mcV$sp(LiveListenerBus.scala:48) 
    at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1.apply(LiveListenerBus.scala:47) 
    at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1.apply(LiveListenerBus.scala:47) 
    at org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1460) 
    at org.apache.spark.scheduler.LiveListenerBus$$anon$1.run(LiveListenerBus.scala:46) 
15/02/06 15:56:49 ERROR ContextCleaner: Error in cleaning thread 
java.lang.InterruptedException 
    at java.lang.Object.wait(Native Method) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) 
    at org.apache.spark.ContextCleaner$$anonfun$org$apache$spark$ContextCleaner$$keepCleaning$1.apply$mcV$sp(ContextCleaner.scala:136) 
    at org.apache.spark.ContextCleaner$$anonfun$org$apache$spark$ContextCleaner$$keepCleaning$1.apply(ContextCleaner.scala:134) 
    at org.apache.spark.ContextCleaner$$anonfun$org$apache$spark$ContextCleaner$$keepCleaning$1.apply(ContextCleaner.scala:134) 
    at org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1460) 
    at org.apache.spark.ContextCleaner.org$apache$spark$ContextCleaner$$keepCleaning(ContextCleaner.scala:133) 
    at org.apache.spark.ContextCleaner$$anon$3.run(ContextCleaner.scala:65) 

nic złego w moim kodu? Z góry dziękuję. używam apache iskrę 1.2.0-bin-Hadoop-2.4, Scala 2.10.4

Odpowiedz

21

Według this mail archive, tj .:

Hi Haoming,

Można bezpiecznie zignorować ten błąd. Jest to wydrukowane pod koniec wykonywania , gdy oczyszczamy i zabijamy wątek z kontekstem demona czyszczenia . W przyszłości dobrze byłoby wyciszyć ten konkretny komunikat, ponieważ może to być mylące dla użytkowników.

Andrew

błąd ten może być pominięty.

+0

ohh widzę, proszę pana. Myślę, że problem pochodzi z mojego kodu, ale w rzeczywistości jest to dziennik do czyszczenia pracy iskry. Dziękuję Panu. – Bobs

+0

Czy problem został rozwiązany? Używam iskry w locie z iskrą 1.5.1 i ulem 1.2.1 w trybie skupienia przędzy. Odbieranie tego samego błędu "nieprzechwycony błąd w wątku SparkListenerBus, zatrzymanie SparkContext java.lang.AbstractMethodError " – Arvindkumar

+0

@Arvindkumar ten problem został rozwiązany, a teraz mogę go normalnie używać. – Bobs

34

SparkContext lub SparkSession (zapłonowa> = 2.0.0) powinna być zatrzymana, gdy kod zapłonowa jest prowadzony przez dodanie sc.stop lub spark.stop (iskier> = 2.0.0) na końcu kodu.

+0

Dzięki, zapomniałem o tym. –

+0

Myślę, że to powinna być odpowiedź. –

Powiązane problemy