2016-03-23 20 views
2

Ich habe versucht, spark-submit zur Arbeit mit org.apache.spark.sql.hive.HiveContext zu bekommen, aber ich komme immer mit java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning . Hier ist der Code, der in der letzten Zeile bricht:Wie erhält man den Submission-Hive-Kontext, der mit Tez und Garn funktioniert?

val sc = SparkContext.getOrCreate() 
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc) 

Dies ist auf Hortonworks 2.3.4, mit Funken 1.5.2, 1.2.1 hive, hadoop 2.7.1 und 0.7.0 tez. Ich benutze Maven für alle Abhängigkeiten außer Datenkern, ich habe hive-site.xml und tez-site.xml im Argument --files von spark-submit. Hier ist der Tez bezogen Auszug aus meiner Pom:

<dependency> 
     <groupId>org.apache.tez</groupId> 
     <artifactId>tez-api</artifactId> 
     <version>${tez.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tez</groupId> 
     <artifactId>tez-dag</artifactId> 
     <version>${tez.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tez</groupId> 
     <artifactId>tez-common</artifactId> 
     <version>${tez.version}</version> 
    </dependency> 

Dieser Code funktioniert ordnungsgemäß in Spark Shell. Irgendein Rat?

+1

Ich konnte nicht verstehen, da Sie Spark verwenden, warum tez verwenden? Spark könnte alle Aufgaben alleine erledigen, selbst wenn er HiveContext verwendet. – user1314742

+0

@ user1314742, Ich versuche nicht speziell, tez zu verwenden. Die exection engine von hive-site.xml ist tez auf unserem Cluster. Ich füge die Abhängigkeiten hinzu, um zu versuchen, den Fehler loszuwerden. – RachmaninovQuartet

+0

Also neue hive-site.xml in Ihr Spark conf Verzeichnis und versuchen, tez zu entfernen und es erneut versuchen .. das sollte das Problem beheben – user1314742

Antwort

1

Im Anschluss an den Ratschlag von @ user1314742 habe ich alle tez-bezogenen Inhalte aus hive-site.xml entfernt. Ich habe es in das Argument --files aufgenommen, um es zu unterwerfen, um meine aktuellen Hive-Konfigurationen nicht zu ändern.

So put new hive-site.xml into your spark conf directory and try to remove tez and try again.. that should resolve the problem