Wie wird eine programmgesteuerte Verbindung zu einem Hive-Metastore in SparkSQL hergestellt?

8

Ich benutze HiveContext mit SparkSQL und versuche, mich mit einem entfernten Hive-Metastor zu verbinden. Die einzige Möglichkeit, den Hive-Metastore zu setzen, besteht darin, die hive-site.xml in den Klassenpfad einzubinden (oder in / etc zu kopieren) /funken / conf /).

Gibt es eine Möglichkeit, diesen Parameter programmatisch in einem Java-Code zu setzen, ohne die hive-site.xml einzuschließen? Wenn ja, wie lautet die Spark-Konfiguration?

    
amarouni 13.08.2015, 06:04
quelle

3 Antworten

22

Für Spark 1.x können Sie festlegen mit:

%Vor%

Oder

%Vor%

Aktualisieren Wenn Ihre Hive kerberisiert ist :

Versuchen Sie, diese Einstellungen vor dem Erstellen des HiveContext festzulegen:

%Vor%     
amarouni 13.08.2015, 16:31
quelle
8

In Spark 2.0. + sollte es ungefähr so ​​aussehen:

  

Vergessen Sie nicht, die "hive.metastore.uris" durch Ihre zu ersetzen. Dies   Angenommen, Sie haben bereits einen Bienenstock-Metastreedienst gestartet (nicht a   hiveserver).

%Vor%     
pgirard 28.11.2016 16:37
quelle
1

Ich hatte auch dasselbe Problem, aber gelöst. Folgen Sie einfach diesen Schritten in Spark 2.0 Version

Schritt 1: Kopieren Sie die Datei hive-site.xml aus dem Ordner "Hive conf" in Spark conf.

Schritt 2: Bearbeiten Sie die Datei spark-env.sh und konfigurieren Sie Ihren mysql-Treiber. (Wenn Sie Mysql als Bienenstock-Metastore verwenden.)

Oder fügen Sie MySQL-Treiber zu Maven / SBT hinzu (wenn Sie diese verwenden)

Schritt3: Wenn Sie eine Spark-Sitzung erstellen, fügen Sie enableHiveSupport () hinzu

  

val spark = SparkSession.builder.master ("lokal"). appName ("Testen") .enableHiveSupport () .getOrCreate ()

Beispielcode:

%Vor%

Ausgabe:

    
Venu A Positive 07.12.2016 13:07
quelle