老是和这块东西接触,今天看看官网并结合自己理解总结下这一块
官网地址:https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-JDBC
url的写法
1、url中参数的拼接
jdbc:hive2://<host1>:<port1>/dbName;initFile=<file>;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://<host>:<port>/<db>
- 2、ZooKeeper连接URL
ZooKeeper连接URL的模式实现了HiveServer2的高可用性和滚动升级,不需要指定其他配置参数,例如身份验证模式,传输模式或SSL参数,它的信息是在zookeeper中保存的
jdbc:hive2://<zookeeper quorum>/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
<zookeeper quorum>的值与hive-site.xml中的hive.zookeeper.quorum配置参数相同。
zooKeeperNamespace 的值其实就是在zookeeper中的目录,里面含有开启服务的服务器ip等信息,其实zookeeper连接的方式其实就是去zookeeper上去获取hive服务的地址
-
3、http连接URL(没用过)
jdbc:hive2://<host>:<port>/<db>;transportMode=http;httpPath=<http_endpoint> -
4、SSL连接URL(没用过)
jdbc:hive2://<host>:<port>/<db>;ssl=true;sslTrustStore=<trust_store_path>;trustStorePassword=
<trust_store_password>
<trust_store_path> 是客户端的信任库文件所在的路径。
<trust_store_password>是访问信任库的密码。
3、kerberos 相关
jdbc:hive2://<host>:<port>/<db>;principal=<Server_Principal_of_HiveServer2>
注意
这里的principal 指的是服务器的principal,就是JDBC客户端请求服务的principal,当然这个服务的principal是在hive-site.xml中已经配置好的
<property>
<name>hive.server2.authentication.kerberos.principal</name>
<value>hs2/_HOST@POTATO.HAMBURG</value>
</property>
这个_HOST 即为开启hive server 服务的 ip 或主机名,一想也可以理解,如果没有开启服务,那也没有没有办法访问。
(如果是tcp连接URL,这里将_HOST 替换成hive server 服务的IP ,如果是zookeeper连接的URL的话,这里不变,就写_HOST)
网友评论