我想让Zeppelin工作。但是当我两次运行笔记本时,第二次因Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
而失败。 (帖子末尾的完整日志)
这似乎是由于Metastore中的锁定没有被移除。它还建议使用Postgres而不是Hive,因为它允许多个用户在Zeppelin中运行作业。
我制作了一个postgres数据库和hive-site.xml
指向这个数据库。我将此文件添加到Zeppelin的config文件夹中,但也添加到Spark的config文件夹中。同样在Zeppelin的jdbc解释器中,我添加了与hive-site.xml
中相似的参数。
但问题仍然存在。
错误日志: http://pastebin.com/Jqf9cdtU
hive-site.xml: http://pastebin.com/RZdXHPX4
答案 0 :(得分:2)
尝试在Spark设置中使用Thrift服务器体系结构,而不是在Hive的单个实例JVM上工作,在那里您无法生成多个会话。
与Hive的连接主要有三种类型:
单个JVM - 在仓库中本地存储的Metastore,不允许多个会话
多个JVM - 每个工作人员都表现为一个Metastore
Thrift服务器架构 - 多个用户可以访问SQL引擎并实现并行性
答案 1 :(得分:0)
停止齐柏林飞艇。转到Apache Zeppelin中的bin
文件夹,然后尝试删除metastore_db
sudo rm -r metastore_db/
再次启动Zeppelin并立即尝试。
答案 2 :(得分:0)
Another instance of Derby may have already booted the database
默认情况下,spark使用derby作为元数据存储,只能为一个用户提供服务。看来你启动了多个spark解释器,这就是为什么你看到上面的错误信息。所以这里有两个解决方案