Hiveserver2的高可用搭建

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
注册配置 MSE Nacos/ZooKeeper,182元/月
云原生网关 MSE Higress,422元/月
简介: Hiveserver2的高可用搭建

1 部署启动hiveserver2

1.1 配置hive-site.xml

利用Xshell工具连接虚拟机

进入hive安装目录下的conf文件夹,更改hive-site.xml配置文件其中的配置hive-site.xml

你会发现/usr/hive/apache-hive-2.3.3-bin/conf/并没有hive-site.xml文件直接新建一个就行

[root@master hive]# cd apache-hive-2.3.3-bin/conf/
#创建文件
[root@master conf]# touch hive-site.xml
#编辑
[root@master conf]# vim hive-site.xml 

在hive-site.xml中写入

ip改为自己的

<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://192.168.134.154:3306/hive</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>root</value>
        </property>
        <property>
                <name>hive.metastore.schema.verification</name>
                <value>false</value>
        </property>
  <property> 
       <name>hive.cli.print.current.db</name>
     <value>true</value>
  </property>
  <property> 
           <name>hive.cli.print.header</name>
           <value>true</value>
  </property>
  <!-- 这是hiveserver2 -->
  <property>
           <name>hive.server2.thrift.port</name>
         <value>10000</value>
  </property>
      <property>
          <name>hive.server2.thrift.bind.host</name>
          <value>192.168.134.154</value>
      </property>
</configuration>

1.2 配置hadoop中的core-site.xml文件

进入到hadoop的安装目录下的etc/hadoop文件夹,配置其中的core-site.xml文件

注意:如果是hadoop集群而不是单机版,需要更改所有虚拟机上的core-site.xml文件

在最后追加

<!-- 如果连接不上10000 -->
<property>     
  <name>hadoop.proxyuser.root.hosts</name>     
  <value>*</value>
 </property> 
<property>     
  <name>hadoop.proxyuser.root.groups</name>    
    <value>*</value> 
</property>
<property>     
  <name>hadoop.proxyuser.zhaoshb.hosts</name>     
  <value>*</value> 
</property> 
<property>     
  <name>hadoop.proxyuser.zhaoshb.groups</name>     
  <value>*</value> 
</property>

1.3 测试

首先启动你集群中的Zookeeper和Hadoop

然后在安装hive的主机上启动hiveserver2

因为配置好了hive的环境变量.所以我们可以直接在任何文件夹下运行

不然的话需要进到hive安装目录的bin下

[root@master ~]# hiveserver2
#或者
[root@master ~]# hive --service hiveserver2
123

这个时候你的页面会一直卡在这里,这是正常的,因为你是启动了一个服务

你只需要再开一个Xshell窗口连接即可

在新开的窗口操作

#进入beeline
[root@master ~]# beeline
#连接10000端口
beeline> !connect jdbc:hive2://192.168.134.154:10000
Connecting to jdbc:hive2://192.168.134.154:10000
Enter username for jdbc:hive2://192.168.134.154:10000: root #用户名root
Enter password for jdbc:hive2://192.168.134.154:10000: **** #密码root

然后使用浏览器在你的192.168.134.154(安装hive的主机ip地址):10002查看

接下来可以在hiveserver2中操作,基本操作和hive中一样

0: jdbc:hive2://192.168.134.154:10000> show databases;
+----------------+
| database_name  |
+----------------+
| default        |
+----------------+
1 row selected (2.51 seconds)

2 高可用部署

2.1 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>

2.2 Hiveserver2启动

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

参数说明:

a) hiveserver2端口:10001

b) metastore的uri:thrift://192.168.10.34:9083,thrift://192.168.10.35:9084,

c) hiveserver2的轮询分组命名空间:hiveserver2/lenmom

d) 日志目录:/hive/logs/server2_10001

e) 临时文件目录:/user/lenmom/tmpdata

2.3 jdbc连接hive server方式

JDBC Url

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

参数说明

a) 为Zookeeper的集群链接串,如zkNode1:2181,zkNode2:2181,zkNode3:2181

b) 为Hive数据库,默认为default

c) serviceDiscoveryMode=zooKeeper 指定模式为zooKeeper

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

2.4. 客户端轮询方式连接

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

参数说明:

-u

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

lenmom 租户对应的hiveserver库

serviceDiscoveryMode=zooKeeper; zk轮询发现hs2

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

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

-n 多租户用户名

-p 多租户用户密码

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


2.5 客户端直连方式连接

beeline -u "jdbc:hive2://192.168.1.252:10000/lenmom" -n  lenmom -p lenmom -d org.apache.hive.jdbc.HiveDriver 

参数说明:

hs2地址和端口:192.168.10.32:10000

lenmom 租户对应的hiveserver库

-n 多租户用户名

-p 多租户用户密码

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

目录
相关文章
|
SQL 前端开发 Java
安装部署--impala 服务启动、关闭 | 学习笔记
快速学习 安装部署--impala 服务启动、关闭
1238 0
安装部署--impala 服务启动、关闭 | 学习笔记
|
存储 缓存 资源调度
想了解流计算,你必须得看一眼,实现Flink on Yarn的三种部署方式,并运行wordcount
想了解流计算,你必须得看一眼,实现Flink on Yarn的三种部署方式,并运行wordcount
1468 0
想了解流计算,你必须得看一眼,实现Flink on Yarn的三种部署方式,并运行wordcount
|
SQL HIVE Python
[Hive]HiveServer2配置
HiveServer2(HS2)是一个服务器接口,能使远程客户端执行Hive查询,并且可以检索结果。HiveServer2是HiveServer1的改进版,HiveServer1已经被废弃。
4513 0
|
SQL 安全 Java
一篇文章彻底理解 HIVE 常见的三种 AUTHENTICATION 认证机制的配置与使用
一篇文章彻底理解 HIVE 常见的三种 AUTHENTICATION 认证机制的配置与使用
|
分布式计算 资源调度 Hadoop
Hadoop YARN资源管理-公平调度器(Fackbook的Fair Scheduler)
详细介绍了Hadoop YARN资源管理中的公平调度器(Fair Scheduler),包括其概述、配置、队列结构、以及如何将作业提交到指定队列,展示了公平调度器如何通过分配文件(fair-scheduler.xml)来控制资源分配,并提供了配置示例和如何通过命令行提交作业到特定队列的方法。
710 0
Hadoop YARN资源管理-公平调度器(Fackbook的Fair Scheduler)
|
SQL 存储 分布式计算
Hive学习---5、分区表和分桶表
Hive学习---5、分区表和分桶表
|
12月前
|
监控 关系型数据库 MySQL
数据治理平台Datavines
【10月更文挑战第20天】随着数据量的增长和数字化转型的推进,数据治理成为关键议题。Datavines是一个开源的数据治理平台,提供数据目录、概览及质量检查等功能,帮助用户全面了解和管理数据,确保数据的准确性和有效性。通过简单的部署和配置,即可快速启动使用,支持数据源配置、质量监控及作业管理等核心功能。
2119 10
|
监控 Java Unix
|
SQL 存储 关系型数据库
|
消息中间件 监控 Kafka
实时计算 Flink版产品使用问题之处理Kafka数据顺序时,怎么确保事件的顺序性
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。