DataGrip 连接 Hive 1.1
环境介绍
MacBook M1 + DataGrip + Hive 1.1
直接连接,报错,原因为hive-jdbc
的版本太高
[ 08S01] Could not open client transport with JDBC Uri: jdbc:hive2://10.20.147.31:10000/default: Could not establishconnection to jdbc:hive2://10.20.147.31:10000/default: 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.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}).
点击Driver:Apaache Hive
查看hive-jdbc
的版本
版本为 3.1 ,明显版本过高,我们需要使用1.1.0
但是DataGrip
没有提供,我们需要手动加jar
包
手动添加Hive 1.1
的jar
包
① 在该路径下可以看到 DataGrip 使用的jar
包,我们参考这个,在同级目录创建Hive1.1
目录,然后将手动加的jar
包 放到该目录下
# 找到你当前的 DataGrip 安装目录,这里放了所有的连接驱动[kylewhite@kyledeMacBook-Pro Hive] % cd ~/Library/Application\ Support/JetBrains/DataGrip.1/jdbc-drivers/Hive/# 创建 Hive 1.1[kylewhite@kyledeMacBook-Pro Hive] % mkdir 1.1.0
② 为了不用这么麻烦下载这些jar
包,我们通过Maven
下载,引用如下依赖,然后到本地仓库找到对应的jar
包并复制到创建的目录下
<dependency><groupId>org.apache.hive</groupId><artifactId>hive-jdbc</artifactId><version>1.1.0</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.6.0</version></dependency>
③ 需要用到的jar
包
hive-common-1.1.0.jar hive-serde-1.1.0.jar httpclient-4.5.8-sources.jar jcl-over-slf4j-1.7.25.jarhadoop-auth-2.6.0.jar hive-jdbc-1.1.0.jar hive-service-1.1.0.jarhttpclient-4.5.8.jar libthrift-0.9.2.jarhadoop-common-2.6.0.jar hive-metastore-1.1.0.jar hive-shims-1.1.0.jar httpcore-4.4.11.jar slf4j-api-1.7.5.jarguava-25.0-jre.jar
④ 更换DataGrip
的hive-jdbc
如果还有问题,就把3.1.2 移除,重新测试
如果觉得《DataGrip 连接 Hive 1.1》对你有帮助,请点赞、收藏,并留下你的观点哦!