Удаленная база данных Metastore не разделяет базу данных global_temp между различными приложениями Spark - PullRequest
0 голосов
/ 04 февраля 2019

Я запускаю первое искровое приложение, настроенное для подключения к удаленной базе данных 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?

...