hive—high Avaliable

​ 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、环境如下:

Node01 Node02 Node03 Node04
Namenode 1 1
Journalnode 1 1 1
Datanode 1 1 1
Zkfc 1 1
zookeeper 1 1 1
resourcemanager 1 1 1
nodemanager 1 1 1
Hiveserver2 1
beeline 1

2、node02—hive-site.xml

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node01:3306/hive?createDatabaseIfNotExist=true</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>123</value>
</property>
<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>node01:2181,node02:2181,node03:2181</value>
</property>
<property>
<name>hive.zookeeper.client.port</name>
<value>2181</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node02</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10001</value>
</property>

3、node4—hive-site.xml

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node01:3306/hive?createDatabaseIfNotExist=true</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>123</value>
</property>
<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>node01:2181,node02:2181,node03:2181</value>
</property>
<property>
<name>hive.zookeeper.client.port</name>
<value>2181</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node04</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10001</value>
</property>

4、使用jdbc或者beeline两种方式进行访问

1) beeline

!connect jdbc:hive2://node01,node02,node03/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2_zk root 123

2)jdbc

public class HiveJdbcClient2 {

	private static String driverName = "org.apache.hive.jdbc.HiveDriver";

	public static void main(String[] args) throws SQLException {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} Connection conn = DriverManager.getConnection("jdbc:hive2://node01,node02,node03/default;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2_zk", "root", "");
Statement stmt = conn.createStatement();
String sql = "select * from tbl";
ResultSet res = stmt.executeQuery(sql);
while (res.next()) {
System.out.println(res.getString(1));
}
}
}

Hive-ha (十三)的更多相关文章

  1. Hive HA使用说明

    hive让大数据飞了起来,不再需要专人写MR.平常我们都可以用基于thrift的任意语言来调用hive. 不过爱恨各半,hive的thrift不稳定也是出了名的.很容易就出问题,让人无计可施.唯一的办 ...

  2. Hadoop 2.6.0+ZooKeeper+Hive HA高可用集群安装

    http://blog.csdn.net/totxian/article/details/45248399

  3. Hive HA基本原理

  4. hive数据仓库入门到实战及面试

    第一章.hive入门 一.hive入门手册 1.什么是数据仓库 1.1数据仓库概念 对历史数据变化的统计,从而支撑企业的决策.比如:某个商品最近一个月的销量,预判下个月应该销售多少,从而补充多少货源. ...

  5. 基于Hadoop的数据仓库Hive

    Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理.特殊查询和分析处理,提供了类似于SQL语言的查询语言–HiveQL,可通过HQL语句实现简单的MR统计,Hi ...

  6. MUA

    a big deal analysis analytics cooperate 合作 efficient explicitly fine grained Granularity graph geogr ...

  7. oschina大数据开源软件

    Hadoop 图形化用户界面 Hue 大数据可视化工具 Nanocubes 企业大数据平台 RedHadoop 大数据查询引擎 PrestoDB Hadoop集群监控工具 HTools 安全大数据分析 ...

  8. 通过Ambari2.2.2部署HDP大数据服务

    node1 amari-server   node2 amari-agent namenode1,datanode,resourcemanager,zk node3 amari-agent namen ...

  9. 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)

    1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...

  10. 大二暑假第六周总结--开始学习Hadoop基础(五)

    简单学习数据仓库HIVE HIVE是一个构建于Hadoop顶端的数据仓库工具 支持大规模数据存储,分析,具有良好的可扩展性 某种程度上可以看做是用户编程接口,本身不存储和处理数据 依赖分布式系统HDF ...

随机推荐

  1. .Net Core 2.*+ InfluxDB+Grafana+App Metrics实时性能监控

    前言 .net core 2.* 实施性能监控 这个工具其实给运维 大大们用起来是更爽的.但是Grafana现在还没有找到中文版. 本文需要了解的相关技术与内容: InfluxDb(分布式时序数据库, ...

  2. springboot-helloworld-eclipse

    1.eclipse安装springboot插件 2.new->Spring Start ->group:组名称:artifact:组件名称:->选中web->finish 3. ...

  3. lua学习笔记4--XLua

    下载XLua:   https://github.com/tencent/xlua 项目中使用XLua只需将Plugins和XLua两个文件夹拷贝到U3D中即可XLua只是核心,用于实现Lua和C#交 ...

  4. LeetCode.1207-唯一的元素出现次数(Unique Number of Occurrences)

    这是小川的第次更新,第篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第269题(顺位题号是1207).给定一个整数数组arr,当且仅当该数组中每个元素的出现次数唯一时,返回tr ...

  5. 求帮助 html5三次贝塞尔曲线问题

    <!DOCTYPE html><html><head><meta charset="utf-8"> <title>can ...

  6. 【AMAD】django-oauth2-provider -- 为你的app提供Oauth2的访问

    简介 个人评分 简介 django-oauth2-provider1主要是为django集成oauth2加入了不少的工具,比如装饰器,Base View, Authentication Backend ...

  7. react项目开发环境搭建

    1.环境安装,首先要安装node http://nodejs.cn/  进入nodejs下载,你是window就下在window的反之,安装下一步下一步...就好了 安装成功了试试 node -v , ...

  8. [转帖]socks5 协议简介

    socks5 协议简介 http://zhihan.me/network/2017/09/24/socks5-protocol/ 什么是socks5 或许你没听说过socks5,但你一定听说过Shad ...

  9. springboot系列:使用缓存

    前言:springboot已经为我们实现了抽象的api接口,因此当我们使用不同的缓存时,只是配置有可能有点区别(比如ehcache和Redis),但是在程序中使用缓存的方法是一样的. 1.spring ...

  10. mount.nfs: access denied by server while mounting

    在利用centos7系统搭建NFS服务时出现如下问题,百度后才解决 因为当时在服务器端vim /etc/exports 时, 我只写了 这一行 /home/wjs-nfs  *(ro) (没想到偷懒出 ...