Ich habe ein Szenario, um zwei verschiedene Tabellen Quelle und Ziel von zwei separaten Remote-Hive-Server zu vergleichen, können wir zwei SparkSessions
etwas wie ich habe versucht, unten: -Können wir mehrere Sparksessions verwenden, um auf zwei verschiedene Hive-Server zuzugreifen
val spark = SparkSession.builder().master("local")
.appName("spark remote")
.config("javax.jdo.option.ConnectionURL", "jdbc:mysql://192.168.175.160:3306/metastore?useSSL=false")
.config("javax.jdo.option.ConnectionUserName", "hiveroot")
.config("javax.jdo.option.ConnectionPassword", "hivepassword")
.config("hive.exec.scratchdir", "/tmp/hive/${user.name}")
.config("hive.metastore.uris", "thrift://192.168.175.160:9083")
.enableHiveSupport()
.getOrCreate()
SparkSession.clearActiveSession()
SparkSession.clearDefaultSession()
val sparkdestination = SparkSession.builder()
.config("javax.jdo.option.ConnectionURL", "jdbc:mysql://192.168.175.42:3306/metastore?useSSL=false")
.config("javax.jdo.option.ConnectionUserName", "hiveroot")
.config("javax.jdo.option.ConnectionPassword", "hivepassword")
.config("hive.exec.scratchdir", "/tmp/hive/${user.name}")
.config("hive.metastore.uris", "thrift://192.168.175.42:9083")
.enableHiveSupport()
.getOrCreate()
ich habe versucht, mit SparkSession.clearActiveSession() and SparkSession.clearDefaultSession()
aber es funktioniert nicht, wirft den Fehler unten:
Hive: Failed to access metastore. This class should not accessed in runtime.
org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
gibt es eine andere Art und Weise wir erreichen können zwei hive Tabellen Zugriff auf mehrere mit SparkSessions
oder SparkContext
.
Dank
Ich kann die Methode newSession() in SparkSession nicht finden. Gibt es Beispiele? Bitte. – Vignesh
Ich habe nach Code geforscht, der eine Funkensession erzeugt und oben einen Zeiger gegeben hat. Sie müssen die Dokumentationsmethoden überprüfen. In der Tat arbeite ich an <2 Version von Funken. bitte überprüfe Methoden wie 'setActiveSession' etc ... –