2016-09-08 3 views
1

부족, 나는 다음과 같은 오류가 발생합니다 :스파크 2.0.0 스트리밍 작업은 스칼라 실행 방법

build.sbt

"org.apache.spark" %% "spark-core" % "2.0.0" % "provided", 
"org.apache.spark" %% "spark-streaming" % "2.0.0" % "provided" 
spark-2-streaming-nosuchmethod-arrowassoc

만 제공 종속성을 퍼팅 :

Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 72.0 failed 1 times, most recent failure: Lost task 0.0 in stage 72.0 (TID 37, localhost): java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;

은 내가 GitHub의의의 repo에이 현상에 대한 간단한 그림을 넣어

드라이버 코드에 ->을 사용하여 sbt-assembly으로 패키징하고 작업을 제출하면 오류가 발생합니다. 이것은 큰 문제는 아니며 ArrayAssoc을 사용하면 피할 수 있지만 spark-streaming-kafka-0-8_2.11 v2.0.0은 어딘가에 있으며 동일한 오류가 발생합니다.

과 같이 그 일을 그런 다음

sbt assembly 

그런 다음

spark-2.0.0-bin-hadoop2.7/bin/spark-submit \ 
--class org.apache.spark.examples.streaming.NetworkWordCount \ 
--master local[2] \ 
--deploy-mode client \ 
./target/scala-2.11/spark-2-streaming-nosuchmethod-arrowassoc-assembly-1.0.jar \ 
localhost 5555 
+0

uber JAR에 스칼라를 포함합니까? –

+0

그래, sbt - 어셈블리는 기본적으로 스칼라 런타임을 포함합니다. 그러나 확실히하기 위해, 나는 또한 그것을 명시 적으로 요구했다. – Utgarda

답변

0
  1. 스파크 작업 즉, 스칼라 실행하지 않고 포장해야

    wordCounts.map{ 
        case (w, c) => Map(w -> c) 
    }.print() 
    

    을, 당신이하고있는 경우 그것 sbt - 어셈블리와 함께,이 추가 : assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false)

  2. 방금 ​​내 SPARK_HOME 환경 변수가 Spark 1.6.2를 가리키고 있는데, 어디에서 실행하든 상관 없습니다. spark-submit, SPARK_HOME이 올바르게 설정되어야합니다.
관련 문제