2016-06-18 3 views
2

로컬 컴퓨터에서 Intellij에 스파크를 설정하는 데 많은 시간을 할애하고 있습니다.스파크에 기여한 IntelliJ에 대한 스파크 설정

목표 : SparkPi.scala을 오류없이 실행하십시오. 촬영

단계 :

git clone `https://github.com/apache/spark` 
Import the project to Intellij as a Maven Project 
build/mvn -DskipTests clean package 
navigate to examples folder modify pom.xml (change occurrences of provided , test -> compile) 
Open SparkPi.scala and add `.master("local[4]")` to Spark Session 
Right click and run SparkPi 

오류 나는

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/MapMaker 
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:271) 
    at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2257) 
    at org.apache.spark.sql.SparkSession$Builder$$anonfun$8.apply(SparkSession.scala:822) 
    at org.apache.spark.sql.SparkSession$Builder$$anonfun$8.apply(SparkSession.scala:814) 
    at scala.Option.getOrElse(Option.scala:121) 
    at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:814) 
    at org.apache.spark.examples.SparkPi$.main(SparkPi.scala:31) 
    at org.apache.spark.examples.SparkPi.main(SparkPi.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.MapMaker 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 13 more 

답변

1

에 직면하고 당신은 인 IntelliJ에서 프로젝트를 rebuild해야합니다. 슬프지만 사실 : IJ는 단순히 maven 인프라를 재사용 할 수 없습니다. 당신이 mvn 먼저 실행해야합니까 :

그러나 그것은 명령 줄 mvn 구조의 일부를 사용한다.

google MapMaker 클래스의 경우 : 종속성이 제대로 다운로드되지 않고 사용 가능하지 않다는 의미입니다. 이는 전체 재 구축 후에 해결되어야합니다.

+0

어떻게 다시 작성할 수 있습니까? 예가 도움이 될 것입니다. –

+0

@KrishnaKalyan 나는 단순히'프로젝트 | Rebuild' 옵션을 선택하십시오. – javadba