2017-03-04 2 views
0

Ich habe ein Maven-Projekt für SparkSql und Hive-Konnektivität und geschrieben, um den folgenden Beispielcode erstellt:Wie erstellt man pom.xml für Maven mit SparkSql und Hive?

SparkSession spark = SparkSession 
      .builder() 
      .appName("Java Spark Hive Example") 
      .master("local[*]") 
      .config("hive.metastore.uris", "thrift://localhost:9083") 
      .enableHiveSupport() 
      .getOrCreate(); 
try{ 
    spark.sql("select * from health").show(); 
} catch(Exception AnalysisException) { 
    System.out.println("table not found"); 
} 

I Spark-2.1.0 und Hive bin mit 1.2.1

Für den obigen Code ausgeführt wird, ich Importieren Sie die Jar-Dateien aus dem Ordner "Spark" und fügen Sie sie in das Projekt ein. Ich habe Maven Pom.xml nicht für diesen bestimmten Job verwendet. Aber wenn ich zu den größeren Clustern wie bei AWS übergehe, muss ich meine JAR-Datei ausführen.

Ich kann nicht ausführen, da der Maven die Abhängigkeiten nicht finden kann. Also dachte ich über das Hinzufügen der Abhängigkeiten nach. Ich versuchte dies:

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-core_2.10</artifactId> 
    <version>2.1.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-sql_2.10</artifactId> 
    <version>1.2.1</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-hive_2.10</artifactId> 
    <version>1.2.1</version> 
</dependency> 

Aber es hat nicht funktioniert, und ich bin nicht in der Lage, die Ausgabe zu sehen, was vorher war ich durch das Hinzufügen JAR-Dateien zu bekommen.
Ich möchte wissen, ob ich etwas falsch gemacht habe, wenn ja dann bitte sende mir was zu tun? Wie kann ich die Anweisungen hive-site.xml und hdfs-site.xml nach meinem Projekt in pom.xml hinzufügen? Derzeit verwenden Sie IntelliJ. Bitte lassen Sie mich wissen, was ich tun kann, um mein Problem zu lösen?

Antwort

0

Ich sehe, es gibt eine Fehlkonfiguration von Abhängigkeiten.

In Ihrem Maven Abhängigkeit Ihrer spark-sql & spark-hive sind von Version 1.2.1 aber spark-core ist von Version 2.1.0

ändern alle Abhängigkeiten zu gleichen Versionsnummer und das

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-core_2.10</artifactId> 
    <version>2.1.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-sql_2.10</artifactId> 
    <version>2.1.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-hive_2.10</artifactId> 
    <version>2.1.0</version> 
</dependency> 

spark-core Abhängigkeit http://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10/2.1.0 spark-sql arbeiten sollten Abhängigkeit http://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.10/2.1.0 spark-hive Abhängigkeit http://mvnrepository.com/artifact/org.apache.spark/spark-hive_2.10/2.1.0

+0

Was ist mit der 'hive-site.xml'? Muss ich es manuell setzen? –

+0

ja Sie müssen 'hive-site.xml' Datei in Ihr Projekt' Ressourcen' setzen –

+0

Kein Bruder, es hat nicht funktioniert. Ich habe es versucht. Es zeigt rote Farbe auf den Abhängigkeiten an. Ich denke, die Abhängigkeiten existieren nicht mit dem Maven. –

Verwandte Themen