Hive学习笔记1@Hiveserver2高可用实现

7 篇文章 0 订阅

在生产环境中使用Hive,强烈建议使用HiveServer2来提供服务,好处很多:

在应用端不用部署Hadoop和Hive客户端;

相比hive-cli方式,HiveServer2不用直接将HDFS和Metastore暴漏给用户;

有安全认证机制,并且支持自定义权限校验

有HA机制,解决应用端的并发和负载均衡问题

JDBC方式,可以使用任何语言,方便与应用进行数据交互;

从2.0开始,HiveServer2提供了WEB UI。

 

Hive从0.14开始,使用Zookeeper实现了HiveServer2的HA功能(ZooKeeperService Discovery),Client端可以通过指定一个nameSpace来连接HiveServer2,而不是指定某一个host和port。

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_zk</value>

</property>

 

<property>

<name>hive.zookeeper.quorum</name>

<value>zkNode1:2181,zkNode2:2181,zkNode3:2181</value>

</property>

 

<property>

<name>hive.zookeeper.client.port</name>

<value>2181</value>

</property>

 

<property>

<name>hive.server2.thrift.bind.host</name>

<value>0.0.0.0</value>

</property>

 

<property>

<name>hive.server2.thrift.port</name>

<value>10001</value> //两个HiveServer2实例的端口号要一致

</property>

 

Hiveserver2启动

nohup hive --service hiveserver2 --hiveconf  hive.server2.thrift.port=10001 --hiveconf hive.metastore.uris='thrift://192.168.10.34:9083,thrift://192.168.10.35:9084' --hiveconf hive.server2.zookeeper.namespace=hiveserver2/ssjf --hiveconf hive.log.dir=/hive/logs/server2_10001 --hiveconf hive.exec.scratchdir=/user/ssjf/tmpdata &

其中:

指定端口:10001 

指定metastore的uri:thrift://192.168.10.34:9083,thrift://192.168.10.35:9084,

指定server2的轮询分组命名空间:hiveserver2/ssjf 

指定日志目录:/hive/logs/server2_10001

指定临时文件目录:/user/ssjf/tmpdata

JDBC连接

JDBC连接的URL格式为:

jdbc:hive2://<zookeeper quorum>/<dbName>;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2

其中:

<zookeeper quorum> 为Zookeeper的集群链接串,如zkNode1:2181,zkNode2:2181,zkNode3:2181

<dbName> 为Hive数据库,默认为default

serviceDiscoveryMode=zooKeeper 指定模式为zooKeeper

zooKeeperNamespace=hiveserver2 指定ZK中的nameSpace,即参数hive.server2.zookeeper.namespace所定义,我定义为hiveserver2_zk

 

连接hiveserver2

客户端轮询方式连接

beeline -u "jdbc:hive2://jfhadoop005:9501,jfhadoop006:9501,jfhadoop007:9501/ssjf;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2/ssjf;?mapreduce.job.queuename=root.ssfj" -n ssjf -pXXXX -d org.apache.hive.jdbc.HiveDriver

其中:

 -u   

   jfhadoop005:9501  三个zk的9501端口,轮询用

   ssjf   租户对应的hiveserver库

   serviceDiscoveryMode=zooKeeper;   zk轮询发现hs2

   zooKeeperNamespace=hiveserver2/ssjf  轮询的命名空间,指定轮询服务器的范围  和 hiveserver2的轮询分组命名空间对应。

   ?mapreduce.job.queuename=root.ssfj 对照的yarn资源分组队列

-n   多租户用户名

-p   多租户用户密码

-d  org.apache.hive.jdbc.HiveDriver hive连接驱动

客户端直连方式连接

beeline -u "jdbc:hive2://192.168.10.32:10000/sjzx" -n  sjzx-p  XXXX  -d org.apache.hive.jdbc.HiveDriver 

其中:

hs2地址和端口:192.168.10.32:10000

sjzx   租户对应的hiveserver库

-n   多租户用户名

-p   多租户用户密码

-d  org.apache.hive.jdbc.HiveDriver hive连接驱动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值