Der Hadoop-Cluster unserer Anwendung hat funke 1.5 installiert. Aufgrund spezifischer Anforderungen haben wir mit der Version 2.0.2 einen Funkenjob entwickelt. Wenn ich den Job an Garn weitergebe, verwende ich den Befehl --jars, um die Spark-Bibliotheken im Cluster zu überschreiben. Aber es ist immer noch nicht das scala Bibliotheksglas. Es wird ein Fehler ausgegeben, der besagt,Überschreiben der Funkenbibliotheken in der Funkensendung
ApplicationMaster: User class threw exception: java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
at org.apache.spark.sql.SparkSession$Builder.config(SparkSession.scala:713)
at org.apache.spark.sql.SparkSession$Builder.appName(SparkSession.scala:704)
Gibt es irgendwelche Ideen zum Überschreiben der Cluster-Bibliotheken während Spark übergeben?
Der Shell-Befehl, den ich verwende, um den Job zu senden, ist unten.
spark-submit \
--jars test.jar,spark-core_2.11-2.0.2.jar,spark-sql_2.11-2.0.2.jar,spark-catalyst_2.11-2.0.2.jar,scala-library-2.11.0.jar \
--class Application \
--master yarn \
--deploy-mode cluster \
--queue xxx \
xxx.jar \
<params>