zeppelin-无法示例化sessionhivemetastoreclient

d7v8vwbk  于 2021-06-28  发布在  Hive
关注(0)|答案(3)|浏览(377)

我想让齐柏林飞艇开始工作。但是当我运行一个笔记本两次,第二次由于 Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient . (完整日志(在文章末尾)
这似乎是因为metastore中的锁没有被移除。它还建议使用例如postgres而不是hive,因为它允许多个用户在zeppelin中运行作业。
我做了一个博士后数据库和一个 hive-site.xml 指向这个数据库。我将这个文件添加到齐柏林飞艇的config文件夹中,也添加到spark的config文件夹中。同样在zeppelin的jdbc解释器中,我添加了与 hive-site.xml .
但问题依然存在。
错误log:http网址:pastebin.com/jqf9cdtu
Hive站点。xml:http网址:pastebin.com/rzdxhpx4

lqfhib0f

lqfhib0f1#

停止齐柏林飞艇。去你的房间 bin 然后尝试删除 metastore_db ```
sudo rm -r metastore_db/

再次启动齐柏林飞艇,现在再试一次。
2skhul33

2skhul332#

Another instance of Derby may have already booted the database

默认情况下,spark使用derby作为元数据存储,它只能服务于一个用户。似乎您启动了多个spark解释器,这就是为什么您会看到上面的错误消息。这里有两个解决方案
如果不需要配置单元,请通过将zeppelin.spark.usehivecontext设置为false来禁用spark解释器中的配置单元。
设置支持多个用户的配置单元元数据存储。参考此https://www.cloudera.com/documentation/enterprise/5-8-x/topics/cdh_ig_hive_metastore_configure.html

c8ib6hqw

c8ib6hqw3#

尝试在spark设置中使用thrift服务器体系结构,而不是在无法生成多个会话的配置单元的单个示例jvm上工作。
到hive的连接主要有三种类型:
单个jvm—存储在本地仓库中的元存储,不允许多个会话
多jvm—其中每个工作进程的行为都像一个元存储
thrift服务器体系结构-多个用户可以访问sql引擎并实现并行性

相关问题