Удаленная база данных Metastore не разделяет базу данных global_temp между различными приложениями Spark

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

0 ответов

Другие вопросы по тегам