我想让齐柏林飞艇开始工作。但是当我运行一个笔记本两次,第二次由于 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
3条答案
按热度按时间lqfhib0f1#
停止齐柏林飞艇。去你的房间
bin
然后尝试删除metastore_db
```sudo rm -r metastore_db/
2skhul332#
默认情况下,spark使用derby作为元数据存储,它只能服务于一个用户。似乎您启动了多个spark解释器,这就是为什么您会看到上面的错误消息。这里有两个解决方案
如果不需要配置单元,请通过将zeppelin.spark.usehivecontext设置为false来禁用spark解释器中的配置单元。
设置支持多个用户的配置单元元数据存储。参考此https://www.cloudera.com/documentation/enterprise/5-8-x/topics/cdh_ig_hive_metastore_configure.html
c8ib6hqw3#
尝试在spark设置中使用thrift服务器体系结构,而不是在无法生成多个会话的配置单元的单个示例jvm上工作。
到hive的连接主要有三种类型:
单个jvm—存储在本地仓库中的元存储,不允许多个会话
多jvm—其中每个工作进程的行为都像一个元存储
thrift服务器体系结构-多个用户可以访问sql引擎并实现并行性