Java连接hive使用ha以及jdbc驱动

egaodelong 2020-06-03 11:10:50
Error: Could not establish connection to jdbc:hive2://localhost:10000/metastore: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null, configuration:{use:database=metastore}) (state=08S01, code=0)
原因: 本地jar版本高于服务器

日通过java代码实现,jdbc连接hiveserver2,如下:
Connection conn = null;
try{
Class.forName("org.apache.hive.jdbc.HiveDriver");
conn = DriverManager.getConnection(jdbcUrl,userName,passWord);
}catch (Exception e){
e.printStackTrace();
}
return conn;

jdbc连接串1为:jdbc:hive2://t-bj-hpc-02:10000/default 可以连接成功;
jdbc连接串2为:jdbc:hive2://t-bj-hpc-02:2181,t-bj-hpc-01:2181,t-bj-hpc-03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
不能连接成功。
其中,连接串2,通过beeline命令可以连接成功,但是通过上面代码不能连接成功。
我只知道,下面这个串是使用Zookeeper实现了HiveServer2的HA功能(ZooKeeperService Discovery),Client端可以通过指定一个nameSpace来连接HiveServer2,而不是指定某一个host和port。
问题是,连接串2,通过beeline命令可以连接成功,但是通过上面代码不能连接成功。报错:
java.lang.NullPointerException at org.apache.thrift.transport.TSocket.open(TSocket.java:170) at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:266) at org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37) at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:204) at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:176) at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at cn.teld.bdp.oozie.GetConnection.getConn(GetConnection.java:13) at cn.teld.bdp.oozie.GetConnection.main(GetConnection.java:27)求解答,怎么用连接串2,连接成功?因为我用ambari安装的hive1.2,同时带了hive2.1版本的hiveserver2Interactive。由于某些原因,我必须用hive2.1版本。但是我无法找到hive2.1版本的“jdbc:hive2://t-bj-hpc-02:10000/default”这种格式的连接串。

原因: jar包本地版本过低

7.解决: 使用cdh jar. org.apache.hive:hive-jdbc:1.1.0-cdh5.16.2
...全文
3913 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱米酱 2021-09-13

为什么我替换了还是不行

  • 打赏
  • 举报
回复
zym198462 2020-06-18
谢谢楼主的经验之谈,帮助我很多。
  • 打赏
  • 举报
回复
相关推荐
发帖
Cloud Foundry

542

社区成员

Cloud Foundry是业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。
社区管理员
  • Cloud Foundry社区
加入社区
帖子事件
创建了帖子
2020-06-03 11:10
社区公告
暂无公告