2014-12-02 9 views
9

Ich habe Apache Spark 1.1.1 für die Ausführung auf YARN (Hadoop-2.5.2) eingerichtet. Ich kann Programme mit dem Befehl spark-submit ausführen.Ausführen eines Apache Spark Programms auf YARN von IntelliJ IDEA

Ich benutze IntelliJ IDEA 14. Ich bin in der Lage, Artefakte zu erstellen und das resultierende Glas mit spark-submit ausführen.

Allerdings habe ich mich gefragt, ob es möglich ist, das gesamte Programm direkt von IntelliJ laufen zu lassen?

Ich habe die erforderlichen Bibliotheken hinzugefügt und das Hadoop-2.4-Profil aktiviert. Jedoch bekomme ich am Ende den folgenden Fehler

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.security.UserGroupInformation.getCredentials()Lorg/apache/hadoop/security/Credentials; 
at org.apache.spark.deploy.yarn.ClientBase$class.$init$(ClientBase.scala:58) 
at org.apache.spark.deploy.yarn.Client.<init>(Client.scala:37) 
at org.apache.spark.deploy.yarn.Client.<init>(Client.scala:43) 
at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:91) 
at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:141) 
at org.apache.spark.SparkContext.<init>(SparkContext.scala:333) 
at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:53) 
at WordCountWorkFlow.main(WordCountWorkFlow.java:24) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) 

Kann mir jemand sagen, wo ich falsch liege?

+1

Nein, tat ich nicht. Im Moment baue ich Artefakte meines Projekts und führe es mit Spark-Submit aus. – aps

+1

Btw, als du Artefakte gebaut hast, welche Schritte hast du gemacht? Nehmen Sie die Abhängigkeiten auf? Ein einfaches Glas ist für mich 100MB groß ... – Stephane

+0

Während ich die IntelliJ-Idee nutze, füge ich den Artefakten zusätzlich zu den vorgeschlagenen Maven-Bibliotheken die Kompilierausgabe hinzu. Die Größe beträgt etwa 13,8 KB. – aps

Antwort

0

In Intellij müssen Sie die Abhängigkeiten hinzufügen, die Pfad der Hadoop conf dir ist

gehen zu Projekteinstellung und in Abhängigkeiten den Weg $ HADOOP_HOME/etc/hadoop

hinzufügen und wenn Sie verwenden jedes Lambda dann aus Projekteinstellung -> Quellen -> Sprachlevel gesetzt 8-Lambda-Typ Annonation enter image description here

Verwandte Themen