Java访问Hive的几种JDBC URL格式

1.相关参数的默认值:

1)hive 服务默认端口是 10000
2)zookeeper server默认端口是 2181
3)hive 的默认数据库是 default

2.几种方式访问hive的JDBC URL区别:

1)hive2 server 单点访问 JDBC URL
格式:
jdbc:hive2://<hive2server:port>/<dbName>

示例:
jdbc:hive2://192.168.100.145:10000/frankdb

hive-site.xml 配置文件中的端口配置:
<property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
</property>
如果配置文件中没有配置 hive.server2.thrift.port 或者配置的值不是 10000 则表示 Hive 没有开放 10000 端口。

2)hive2 server HA(zookeeper)方式访问 JDBC URL
格式:
jdbc:hive2://<zookeeper quorum>/<dbName>;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
说明:
zookeeper quorum:是 hive-site.xml 配置文件中 Zookeeper 的 Quorum 节点列表,以三节点为例格式为:zk_host01:zk_port,zk_host02:zk_port,zk_host03:zk_port
示例:
eg1:
jdbc:hive2://hdp01.hadoop.com:2181,hdp02.hadoop.com:2181,hdp03.hadoop.com:2181/frankdb;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
eg2:
jdbc:hive2://node01:2181,node02:2181,node03:2181/frankdb;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2

hive-site.xml 配置文件中的相关配置:
<property>
    <name>hive.server2.support.dynamic.service.discovery</name>
    <value>true</value>
</property>
<property>
    <name>hive.server2.zookeeper.namespace</name>
    <value>hiveserver2</value>
</property>
<property>
    <name>hive.zookeeper.quorum</name>
    <value>hdp01.hadoop.com:2181,hdp02.hadoop.com:2181,hdp03.hadoop.com:2181</value>
</property>
<property>
    <name>hive.zookeeper.client.port</name>
    <value>2181</value>
</property>

3)hive2 server 单点访问(带Kerberos认证) JDBC URL
示例:
jdbc:hive2://192.168.100.145:10000/frankdb;principal=frank/hdp01.hadoop.com@HADOOP.COM
jdbc:hive2://192.168.100.145:10000/frankdb;principal=frank/hdp01.hadoop.com@HADOOP.COM;auth=KERBEROS

注意:
a)JDBC URL通常不需要指定auth=KERBEROS,通常是通过配置的方式隐式启用的
b)hive 的 principal 在 hive-site.xml 配置文件中获取(JDBC URL中需要将"_HOST"替换成本机的域名):
<property>
<name>hive.server2.authentication.kerberos.principal</name>
<value>frank/_HOST@HADOOP.COM</value>
</property>


4)hive2 server HA(zookeeper)方式访问(带Kerberos认证) JDBC URL
示例:
jdbc:hive2://hdp01.hadoop.com:2181,hdp02.hadoop.com:2181,hdp03.hadoop.com:2181/frankdb;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=frank/_HOST@HADOOP.COM
jdbc:hive2://hdp01.hadoop.com:2181,hdp02.hadoop.com:2181,hdp03.hadoop.com:2181/frankdb;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=frank/_HOST@HADOOP.COM;auth=KERBEROS

注意:
a)JDBC URL通常不需要指定auth=KERBEROS,通常是通过配置的方式隐式启用的
b)hive 的 principal 在 hive-site.xml 配置文件中获取(JDBC URL中"_HOST"不能替换、不能写固定节点的域名,因为他会去 zookeeper 上找,可能访问不同节点的 hiveserver2):
<property>
<name>hive.server2.authentication.kerberos.principal</name>
<value>frank/_HOST@HADOOP.COM</value>
</property>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值