2014-12-02 10 views
9

Ho installato Apache Spark 1.1.1 per l'esecuzione su YARN (Hadoop-2.5.2). Sono in grado di eseguire programmi utilizzando il comando spark-submit.Esecuzione di un programma Apache Spark su YARN da IntelliJ IDEA

Sto usando IntelliJ IDEA 14. Sono in grado di creare artefatti ed eseguire il vaso risultante utilizzando spark-submit.

Tuttavia, mi chiedevo se è possibile eseguire l'intero programma direttamente da IntelliJ?

Ho aggiunto le librerie necessarie e attivato il profilo hadoop-2.4. Tuttavia, finisco per ricevere il seguente errore

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) 

Qualcuno può dirmi dove sto andando male?

+1

No, non l'ho fatto. In questo momento sto costruendo artefatti del mio progetto e lo sto usando utilizzando spark-submit. – aps

+1

A proposito, quando costruisci artefatti, quali passi hai fatto? Includete le spese? Un semplice barattolo finisce per essere 100 MB per me ... – Stephane

+0

Mentre utilizzo l'idea IntelliJ, aggiungo semplicemente l'output compilato agli artefatti, oltre alle librerie maven suggerite. La dimensione è di circa 13,8 KB. – aps

risposta

0

In Intellij è necessario aggiungere le dipendenze, che è percorso della Hadoop conf dir

Vai al progetto l'impostazione e le dipendenze aggiungere il percorso $ HADOOP_HOME/etc/Hadoop

e se si utilizza qualsiasi lambda quindi dall'impostazione del progetto -> fonti -> livello di lingua impostato 8-lambda tipo annonation enter image description here

Problemi correlati