Я запускаю первое искровое приложение, настроенное для подключения к удаленной базе данных Hive Metastore, через:
.set("hive.metastore.uris", "thrift://localhost:9083")
.set("spark.sql.hive.thriftServer.singleSession", "true")
Вот исходный код:
val df = sparkSession.readStream
.format("json")
.load("gs://path/location/to/data/")
df.writeStream.queryName("dictionary")
.format("memory")
.start()
Кажется, загрузка данных вБаза данных «global_temp» в том же экземпляре базы данных metastore, как и в журналах:
tail -f /var/log/hive/hive-metastore.out
2019-02-04T14:16:51,628 INFO [pool-11-thread-78] org.apache.hadoop.hive.metastore.HiveMetaStore - 76: source:10.132.0.67 get_functions: db=default pat=*
2019-02-04T14:16:51,677 INFO [pool-11-thread-78] org.apache.hadoop.hive.metastore.HiveMetaStore - 76: source:10.132.0.67 get_database: default
2019-02-04T14:16:51,682 INFO [pool-11-thread-78] org.apache.hadoop.hive.metastore.HiveMetaStore - 76: source:10.132.0.67 get_database: global_temp
Однако, когда я подключаюсь к БД Metastore через beeline, я никогда не вижу таблицу словаря или базу данных global_temp.Как это возможно ?
Я попытался обновить значение базы данных по умолчанию в базе данных "словари" и создать его перед запуском задания. Я получаю следующее сообщение об ошибке:
Исключение в потоке "main"org.apache.spark.SparkException: словари - это сохраненная системой база данных, переименуйте существующую базу данных, чтобы разрешить конфликт имен, или установите другое значение для spark.sql.globalTempDatabase и снова запустите приложение Spark.
Есть идеи, почему таблица "словарь" никогда не появляется в базе данных metastore?