先看看具体报错
使用默认的jdbc驱动
报错
[ 08S01] Could not open client transport with JDBC Uri: jdbc:hive2://hadoop102:10000: Could not establish connection to jdbc:hive2://hadoop102:10000: 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}) org.apache.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}).
服务器上的版本是2.1.0
百度了一圈
- 主要问题就是 jdbc的连接驱动问题,说版本不匹配,然后到hive的lib目录下下载
- 修改hadoop的core-site.xml
截图
还报错? 不应该啊?我驱动版本是对的,我代理也开了?为什么呢?
Missing class org/apache/hive/service/rpc/thrift/TCLIService$Iface.
折腾了很久,换各种jdbc驱动,因为报错的原因就是因为jdbc的驱动问题,以前还下载过cdh的驱动
就是不行,之前连的cdh的驱动虽然能连上,但是执行sql的时候会一直转圈,执行时间特别长
最后~~ 我放弃了,改用DBeaver
很神奇,可以直接连,DBeaver可以自动去拉对应版本的驱动
由于我还是很怀念datagrip,DBeaver写sql太难受了,不能用tab代码提示,还要用回车,格式化也难看,烦 ~~ 于是又回头折腾datagrip
成功了
最后~~~ 灵光乍现~~,我直接拿的DBeaver的驱动不就行了吗?(思维困住了,其实应该早点想到的)
总结:
即使你的jdbc驱动版本对,也不一定可以连接上,为什么?我也不知道(ps:反正该试的都试了)