J'utilise la version Spark 2.1.0 et j'essaie d'établir une connexion avec les tables Hive. Mon entrepôt de données de ruche est dans / user / hive / entrepôt dans hdfs, en listant le contenu de ce dossier, je peux voir tous les dossiers dbname.db qu'il contient. Après quelques recherches, j'ai trouvé que je devais spécifier le spark.sql.warehouse.dir dans spark 2.x et je l'ai configuré comme ceci

val spark = SparkSession
      .builder()
      .appName("Spark Hive Example")
      .config("spark.sql.warehouse.dir", "/user/hive/warehouse")
      .enableHiveSupport()
      .getOrCreate() 

Et maintenant j'essaye d'imprimer les bases de données

spark.sql("show databases").show()

Mais je ne vois que les bases de données par défaut,

+------------+
|databaseName|
+------------+
|     default|
+------------+

Alors, puis-je connecter l'étincelle à la base de données existante de la ruche? y a-t-il quelque chose qui me manque ici?

2
Justin 21 avril 2017 à 13:41

3 réponses

Meilleure réponse

Votre hive-site.xml doit être dans classpath. Vérifiez ceci message. Si vous utilisez le projet maven, vous pouvez conserver ce fichier dans le dossier des ressources.

Une autre façon de se connecter à Hive consiste à utiliser metastore uri.

val spark = SparkSession
.builder()
.appName("Spark Hive Example")
.master("local[*]")
.config("hive.metastore.uris", "thrift://localhost:9083")
.enableHiveSupport()
.getOrCreate();
4
abaghel 21 avril 2017 à 11:15

Il y a un fichier hive-site.xml dans / usr / lib / hive / conf. copier ce fichier dans

/ usr / lib / spark / conf alors vous verrez d'autres bases de données. veuillez suivre les étapes ci-dessous.

1. ouvrez la console de la ruche et créez une nouvelle ruche de base de données> créez la base de données venkat;

2. fermez le terminal de la ruche

3. copiez le fichier ruche -site.xml

sudo cp /usr/lib/hive/conf/hive-site.xml        /usr/lib/spark/conf/hive-site.xml

4. vérifier les bases de données

sqlContext.sql("show databases").show();

Je pense que cela sera utile

0
coder 14 juin 2018 à 03:42

première étape: Vous devez configurer comme ceci sous Custom spark2-defaults: entrez la description de l'image ici

deuxième étape: Écrivez la commande suivante à partir de la ligne de commande:

import com.hortonworks.hwc.HiveWarehouseSession
import com.hortonworks.hwc.HiveWarehouseSession._
val hive = HiveWarehouseSession.session(spark).build()
hive.showDatabases().show()

enter image description here

Intégration d'Apache Hive avec Spark et BI: https: //docs.onworks. com / HDPDocuments / HDP3 / HDP-3.0.0 / intégrating-hive / content / hive_configure_a_spark_hive_connection.html

Opérations de l'API HiveWarehouseSession: https: //docs.hortonworks. com / HDPDocuments / HDP3 / HDP-3.0.0 / intégrant-hive / content / hive_hivewarehousesession_api_operations.html

0
QiuYi 12 juin 2019 à 01:53