老是和这块东西接触,今天看看官网并结合自己理解总结下这一块
官网地址:https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-JDBC
url的写法
1、url中参数的拼接
jdbc:hive2://:/dbName;initFile=;sess_var_list?hive_conf_list#hive_var_list
sess_var_list 是会话变量(例如user=foo;password=bar)的键=值对
hive_conf_list是此session的Hive配置相关的键值对的列表 就是hive-default.xml中的配置项
hive_var_list是此session的hive变量相关的列表
2、不同模式的URL的写法
- 1、tcp连接URL
jdbc:hive2://:/
- 2、ZooKeeper连接URL
ZooKeeper连接URL的模式实现了HiveServer2的高可用性和滚动升级,不需要指定其他配置参数,例如身份验证模式,传输模式或SSL参数,它的信息是在zookeeper中保存的
jdbc:hive2:///;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
的值与hive-site.xml中的hive.zookeeper.quorum配置参数相同。
-
3、http连接URL(没用过)
jdbc:hive2://:/;transportMode=http;httpPath=<http_endpoint> -
4、SSL连接URL(没用过)
jdbc:hive2://:/;ssl=true;sslTrustStore=<trust_store_path>;trustStorePassword=
<trust_store_password>
<trust_store_path> 是客户端的信任库文件所在的路径。
<trust_store_password>是访问信任库的密码。
3、kerberos 相关
jdbc:hive2://:/;principal=<Server_Principal_of_HiveServer2>
######注意
这里的principal 指的是服务器的principal,就是JDBC客户端请求服务的principal,当然这个服务的principal是在hive-site.xml中已经配置好的
<property>
<name>hive.server2.authentication.kerberos.principal</name>
<value>hs2/[email protected]</value>
</property>
这个_HOST 即为开启hive server 服务的 ip 或主机名,一想也可以理解,如果没有开启服务,那也没有没有办法访问。
(如果是tcp连接URL,这里将_HOST 替换成hive server 服务的IP ,如果是zookeeper连接的URL的话,这里不变,就写_HOST)
连接之前,客户端需要在票证缓存中具有有效的Kerberos票证。就是需要认证一下