2017-07-04 3 views
0
mehrere sparksessions mit Hilfe von Tabellen aus zwei verschiedenen hive2 Server zugreifen

Können wir in der Lage Tabellen aus zwei verschiedenen hive2 Servern wie unter Verwendung von zwei SparkSessions zuzugreifen:Können wir in der Lage

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() 

val sparkdestination = SparkSession.builder().master("local") .appName("spark remote2") 
    .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() 

import spark.implicits._ 
import spark.sql 
val source = spark.sql("SELECT * from sample.source limit 20") 

import sparkdestination.implicits._ 
import sparkdestination.sql 
val destination = sparkdestination.sql("select * from sample.destination limit 20") 

Oder ist es wir können jede mögliche Art und Weise kann auf zwei verschiedene Datenbanktabellen wie mysql-hive zum Vergleich mit mehreren Sparksessions zugreifen.

SparkSession.clearActiveSession() 
SparkSession.clearDefaultSession() 

Nach dem Löschen der Sitzungen wir es mit unterschiedlichen Werten zuweisen können:

Danke

+0

Ich glaube nicht, dass die Verbindung in der Mitte geschlossen ist. Haben Sie versucht, kleine Daten zu ziehen? –

+0

funktioniert gut für kleine Datenmengen, aber im Falle von großen ist die Verbindung beendet. – Vignesh

Antwort

0

Schließlich fand ich die Lösung für mein Anliegen, wie mehrere SparkSession zu verwenden, seine durch erreicht.

Verwandte Themen