关于使用zeppelin连接hive不能切换数据库或者只能使用默认数据库deafult的问题

问题:使用zeppelin连接hive时,hive能正常使用,但是指定使用某个数据库时, use 数据库名 并不报错,但是查询该数据库下所有表时: show tables 不显示或者显示在hive默认的数据库default下创建的表,那怎么才能切换到其他数据库呢?

首先介绍解决办法:

关于zepeelin搭建hive集成环境的设置之前已描述过,请参考:https://blog.csdn.net/and52696686/article/details/107294726

正确设置下zeppelin 连接 hive 正常,show databases 可以显示所有数据库,只是无法切换到其他数据库操作,此时想要切换到指定的数据库,需要进行如下设置:

在zeppelin首页右上角,anonymous > interpreter
在这里插入图片描述
在搜索栏搜索 hive 并进行编辑 edit

在这里插入图片描述
只需要在指定默认ip端口 default.url 这一栏的设置:

jdbc:hive2://192.168.206.129:10000

192.168.206.129 是你自己虚拟机的ip地址, 在端口号10000后面加上 /自己指定的数据库名 即可,此处我指定的是 hql50 数据库,保存刷新即可,在连接hive中想要使用的数据库时,就可以快乐的玩耍了。

解析: 这是由于zeppelin自身的一个BUG因素导致,zeppelin拦截器只能识别默认的数据库defalut,不能识别其他用户创建的数据库。这就类似于 java 使用 jdbc 连接 mysql 数据库,
在这里插入图片描述
在设置 jdbc url 地址的时候,需要指定到某一个数据库,这里也是一样,如果只写成 jdbc:hive2://192.168.206.129:10000 ,zeppelin拦截器指向默认的数据库defalut,他无法认识找到其他的数据库,因此这里需在10000后指定数据库名,这样带来的弊端就是操作时只能使用设定的数据库,再想要使用其他的数据库,就到这里来更改。

猜你喜欢

转载自blog.csdn.net/and52696686/article/details/107350360