失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > DataGrip连接hive

DataGrip连接hive

时间:2021-12-20 22:23:36

相关推荐

DataGrip连接hive

报错: org..apache.thrift.TApplicationException: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null, configuration:{set:hiveconf:hive.server2.thrift.resultset.default.fetch.size=1000, use:database=default}).

我遇到这个问题的原因:hive版本与DataGrip里的hive驱动版本不一致

问题解决步骤[正常DataGrip连接hive也可参考]

1.查看hive版本

[root@bigdata105 ~]# locate */hive/lib/hive*jar

可以看到我的hive是1.1.0版本的

2.查看DataGrip中,hive驱动版

点击 Apache Hive

可以看到是3.1.2版本,驱动的版本太高了,所以报错

3.新建一个hive驱动

删除其他驱动文件

选中驱动,然后点击上面的减号即可删除,驱动名Name可以修改

4.拷贝hive中的驱动到DataGrip驱动目录

拷贝到我的DataGrip驱动目录:windows上的C:\Users\Administrator\AppData\Roaming\JetBrains\DataGrip.2\jdbc-drivers\Hive\1.1

这个目录是可以自己任意指定的,为了方便就放到DataGrip放驱动的目录下。还可以加个版本号文件夹更清晰明了

5.给我们在DataGrip新建的hive驱动指定驱动文件

6.开启hive服务,如果已启动则忽略

[root@bigdata105 hive]# hive --service hiveserver2

这个命令执行后,不能关闭窗口,关闭窗口服务就停止了

可以使用后台运行方式

[root@bigdata105 hive]# nohup hive --service hiveserver2 &

7.连接、测试

DataGrip查询hive表带有where条件时报错:

return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

报错原因:

①有可能是hql有问题

②yarn资源不足

③用户权限不足

我的问题是因为当查询语句里面含有where条件时会启用mr,而mr的过程会有写的过程,而我的连接配置信息里没有指定用户名,默认使用windows用户所以没有写的权限。

解决方法:

修改连接配置信息,添加用户名,一般为hdfs

如果觉得《DataGrip连接hive》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。