远程元存储数据库不在不同的spark应用程序之间共享全局临时数据库

ugmeyewa  于 2021-06-27  发布在  Hive
关注(0)|答案(0)|浏览(194)

我启动第一个spark应用程序,配置为通过以下方式连接到远程hive metastore db:

.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()

似乎正在将数据加载到同一metastore db示例中的“global_temp”数据库中,如日志中所示:

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

但是,当我通过beeline连接到metastore db时,我从来没有看到dictionary表或global\u temp数据库。怎么可能?
我尝试将默认数据库值更新到“dictionaries”数据库中,并在运行作业之前创建它,我收到以下错误消息:
线程“main”org.apache.spark.sparkexception中出现异常:字典是系统保留的数据库,请重命名现有数据库以解决名称冲突,或为spark.sql.globaltempdatabase设置其他值,然后再次启动spark应用程序。
你知道为什么表“dictionary”从来没有出现在metastoredb上吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题