hive 高可用搭建

hive 的搭建方式有三种,分别是
1、Local/Embedded Metastore Database (Derby)
2、Remote Metastore Database
3、Remote Metastore Server

一般情况下,我们在学习的时候直接使用 hive –-service metastore 的方式启动服务 端,使用hive 的方式直接访问登录客户端,除了这种方式之外,hive 提供了hiveserver2 的服务端启动方式,提供了 beeline 和 jdbc 的支持,并且官网也提出,一般在生产环境 中,使用 hiveserver2 的方式比较多,

使用 hiveserver2 的优点如下:
1、在应用端不需要部署 hadoop 和 hive 的客户端
2、hiveserver2 不用直接将 hdfs 和 metastore 暴露给用户
3、有 HA 机制,解决应用端的并发和负载问题
4、jdbc 的连接方式,可以使用任何语言,方便与应用进行数据交互 本文档主要介绍如何进行 hive 的 HA 的搭建: 如何进行搭建,参照之前 hadoop 的 HA,使用 zookeeper 完成 HA

1、环境如下:
hive 高可用搭建_第1张图片
2、node2:hive-site.xml

<property>
    <name>hive.metastore.warehouse.dirname>
    <value>/user/hive_ha/warehousevalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionURLname>
    <value>jdbc:mysql://node1:3306/hive_ha?createDatabaseIfNotExist=truevalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionDriverNamename>
    <value>com.mysql.jdbc.Drivervalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionUserNamename>
    <value>rootvalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionPasswordname>
    <value>123456value>
  property>
  <property>
    <name>hive.server2.support.dynamic.service.discoveryname>
    <value>truevalue>
  property>
  <property>
    <name>hive.server2.zookeeper.namespacename>
    <value>hiveserver2_zkvalue>
  property>
  <property>
    <name>hive.zookeeper.quorumname>
    <value>node2:2181,node3:2181,node4:2181value>
  property>
  <property>
    <name>hive.zookeeper.client.portname>
    <value>2181value>
  property>
  <property>
    <name>hive.server2.thrift.bind.hostname>
    <value>node2value>
  property>

3、node3:hive-site.xml

<property>
    <name>hive.metastore.warehouse.dirname>
    <value>/user/hive_ha/warehousevalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionURLname>
    <value>jdbc:mysql://node1:3306/hive_ha?createDatabaseIfNotExist=truevalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionDriverNamename>
    <value>com.mysql.jdbc.Drivervalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionUserNamename>
    <value>rootvalue>
  property>
  <property>
    <name>javax.jdo.option.ConnectionPasswordname>
    <value>123456value>
  property>
  <property>
    <name>hive.server2.support.dynamic.service.discoveryname>
    <value>truevalue>
  property>
  <property>
    <name>hive.server2.zookeeper.namespacename>
    <value>hiveserver2_zkvalue>
  property>
  <property>
    <name>hive.zookeeper.quorumname>
    <value>node2:2181,node3:2181,node4:2181value>
  property>
  <property>
    <name>hive.zookeeper.client.portname>
    <value>2181value>
  property>
  <property>
    <name>hive.server2.thrift.bind.hostname>
    <value>node3value>
  property>
  <property>
    <name>hive.server2.thrift.portname>
    <value>10001value>
  property>

4、node2 和 node3 启动 hive:hiveserver2
5、使用 jdbc 或者 beeline(node4)两种方式进行访问
1) beeline !connect jdbc:hive2://node2,node3,node4/;serviceDiscoveryMode=zooKeeper;zo oKeeperNamespace=hiveserver2_zk root 123

你可能感兴趣的:(大数据,#,Hive,hive,hadoop,big,data)