项目场景:
由于项目使用原因需要连接 hive。 使用 datagrip2021.02可以通过 jar 包的加载直接连接上 hive1.x 的版本;但对hive2.1 的连接不上;连接时会报错,由于不想安装其它客户端连接工具。因此走上了解决问题之路
问题描述:
废话不说,直接上报错信息。是多次加载 jar 包后依然不通。这个操作浪费了 N 多的时间,真的需要提醒大家,这种时候不要一条路跑到黑,可能跑到黑也解决不了;适当时候换个思路想想。。。
[HY000][500164] [Cloudera][HiveJDBCDriver](500164) Error initialized or created transport for authentication: Peer indicated failure: Error validating the login.
com.cloudera.hive.jdbc4.internal.apache.thrift.transport.TTransportException: Peer indicated failure: Error validating the login.
Driver class 'org.apache.thrift.TException' not found.
org.apache.thrift.transport.TTransportException: Peer indicated failure
原因分析:
分析思路一直存在于加载包,报错后通过度娘、冰等去查找解决方案,定位问题出现的原因,然后下载相应的包,测试。持续折腾了若干小时,还是不能通,都要想放弃了,因为加载此包后可能会报其它错误。没有办法,要放弃时突然想到原集群中应当有需要用到的包,不必去 https://mvnrepository.com 找,然后下载,下载的版本可能也对不上。此时思路转化后发现确实可行
然后通过:通过 beeline -u 查看集群是 cdh6.3.4集群,然后找到 CDH下的lib
去搜寻相应的 jar 包。功夫不负有心人,终于找到对应的包
解决方案:
自己找到的包如下,大家可以根据 cdh 版本及 hive 版本的不同去找对应的包,注意:最好在集群的 lib 下找,这样比较省心。hive/lib
commons-httpclient-3.1.jar
commons-logging-1.0.4.jar
curator-client-2.12.0.jar
curator-framework-2.12.0.jar
hive-common-2.1.1-cdh6.3.4.jar
hive-exec-2.1.1-cdh6.3.4.jar
hive-jdbc-2.1.1-cdh6.3.4.jar
hive-metastore-2.1.1-cdh6.3.4.jar
hive-service-2.1.1-cdh6.3.4.jar
hive-service-rpc-2.1.1-cdh6.3.4.jar
hive-service-rpc.jar
httpclient-4.5.3.jar
httpcore-4.4.6.jar
hadoop/
hadoop-auth-3.0.0-cdh6.3.4.jar
hadoop-common-3.0.0-cdh6.3.4.jar
oozie/libtools/
slf4j-api-1.7.25.jar
zookeeper/
zookeeper-3.4.5-cdh6.3.4.jar
1.加载 jar 包到对应的 drive 中去
2.绑定新建的 drive 然后就可以顺利的测试你的应用了。
3.然后就可以快乐的耍 sql 了
但愿的的处理思路能帮助到你。