Hive 部署

一、介绍

Apache Hive是一个分布式、容错的数据仓库系统,支持大规模的分析。Hive Metastore(HMS)提供了一个中央元数据存储库,可以轻松地进行分析,以做出明智的数据驱动决策,因此它是许多数据湖架构的关键组件。Hive构建在Apache Hadoop之上,并通过hdfs支持S3,adls,gs等存储。Hive允许用户使用SQL读取、写入和管理PB级数据。
官网地址

二、架构

Hive中主要包含:Hive-Server 2 (HS2)、Hive Metastore Server (HMS)、以及Hive Client CLI

Hive-Server 2 (HS2):HS2支持多客户端并发和身份验证。它旨在为JDBC和ODBC等开放式API客户端提供更好的支持。
简单来说:HS2提供JDBC/ODBC访问接口和用户认证

Hive Metastore Server (HMS):是关系数据库中Hive表和分区的元数据的中央存储库,并使用元存储库服务API为客户端(包括Hive、Impala和Spark)提供对此信息的访问。
简单来说:Metastore提供元数据访问接口,不负责存储元数据,通常保存在MySQL当中
元数据:在Hive中创建的数据库、表、字段信息(不包含数据信息,数据信息存储在HDFS中)

Hive Client CLI:提供客户端访问,只能在安装了Hive的本地使用

三、环境搭建

3.1、最小化安装

部署版本:3.1.3

  1. 下载压缩包

下载地址

  1. 解压缩
tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/modulemv apache-hive-3.1.3-bin/ /opt/module/hive
  1. 修改环境变量
vim /etc/profile.d/my_env.sh#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE/bin
  1. 刷新环境变量
source /etc/profile.d/my_env.sh
  1. 初始化元数据(默认使用derby数据库)
/opt/module/hive/bin/schematool -dbType derby -initSchema
  1. 启动hive
$HIVE_HOME/bin/hive

3.2、使用mysql存储元数据

  1. 创建元数据库
create database metastore;
  1. 将mysql的jdbc驱动上传到Hive的lib目录下

在这里插入图片描述

  1. 新建hive-site.xml文件
vim $HIVE_HOME/conf/hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- jdbc连接的URL --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value></property><!-- jdbc连接的Driver--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><!-- jdbc连接的username--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- jdbc连接的password --><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- Hive默认在HDFS的工作目录 --><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property>
</configuration>
  1. 初始化元数据库
$HIVE_HOME/bin/schematool -dbType mysql -initSchema -verbose

在这里插入图片描述

3.3、Hive-Server 2(HS2) 部署

上面部署完hive只能在本地客户端访问,需要部署HS2才能使用远程jdcb连接访问

修改配置

# 该配置需要分发到所有hadoop节点
vim $HADOOP_HOME/etc/hadoop/core-site.xml<!--配置所有节点的root用户都可作为代理用户-->
<property><name>hadoop.proxyuser.root.hosts</name><value>*</value>
</property><!--配置root用户能够代理的用户组为任意组-->
<property><name>hadoop.proxyuser.root.groups</name><value>*</value>
</property><!--配置root用户能够代理的用户为任意用户-->
<property><name>hadoop.proxyuser.root.users</name><value>*</value>
</property>
vim $HADOOP_HOME/etc/hadoop/hive-site.xml<!-- 指定hiveserver2连接的host -->
<property><name>hive.server2.thrift.bind.host</name><value>hadoop102</value>
</property><!-- 指定hiveserver2连接的端口号 -->
<property><name>hive.server2.thrift.port</name><value>10000</value>
</property>

启动HS2

nohup $HIVE_HOME/bin/hive --service hiveserver2 &

使用DBeaver远程连接
在这里插入图片描述

3.4、Hive Metastore Server (HMS) 部署

为Hive CLI或者Hiveserver2提供元数据访问接口(其本身不存储元数据)
HMS分为两种运行模式:嵌入式模式、独立服务模式
嵌入模式:在每个HS2和Hive CLI中都都嵌入HMS,不做额外配置的情况下,采用的是嵌入模式
独立模式:HMS独立部署,HS2和Hive CLI获取元数据信息通过访问HMS,再由HMS访问元数据

3.4.1、嵌入模式
vim $HIVE_HOME/conf/hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- jdbc连接的URL --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value></property><!-- jdbc连接的Driver--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><!-- jdbc连接的username--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- jdbc连接的password --><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property>
</configuration>
3.4.1、独立模式

在嵌入模式的配置基础上增加,HS2和Hive CLI访问HMS的地址

<!-- 指定metastore服务的地址 -->
<property><name>hive.metastore.uris</name><value>thrift://hadoop102:9083</value>
</property>

启动HMS

nohup $HIVE_HOME/bin/hive --service metastore &

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/578694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++ 递增/递减运算符和指针

可以将递增运算符用于指针和基本变量。本书前面介绍过。将递增运算符用于指针时。将把指针的值增加其指向的数据类型占用的字节数&#xff0c;这种规则适用于对指针递增和递减。 double arr[5] {1.1, 2.1, 3.1, 4.1, 5.1}; double *ptr arr; ptr; 也可以结合使用这些运算符和…

PostgreSQL | 概念 | 什么是OLTPOLAP?

什么是OLTP&OLAP&#xff1f; 大白话理解&#xff1a;业务系统都可以称作OLTP&#xff0c;基于业务系统产生的数据进行数据分析和决策的都可以称为OLAP。 OLTP OLTP&#xff08; Online Transaction Processing&#xff09;在线事务处理系统 用途&#xff1a; 用于支持日…

14.Unity中序列化

非字符串类型转字节数组 //关键类&#xff1a;BitConverter//所在命名空间&#xff1a;System//主要作用&#xff1a;除字符串的其他常用类型和字节数组相互转换byte[] byte1 BitConverter.GetBytes(100); 字符串类型转字节数组 //关键类&#xff1a;Encoding//所在命名空间&…

第十部分 欧拉图与哈密顿图

欧拉图&#xff1a; 历史背景&#xff1a; 哥尼斯堡七桥问题与欧拉图 问题提出后&#xff0c;很多人对此很感兴趣&#xff0c;纷纷进行试验&#xff0c;但在相当长的时间里&#xff0c;始终未能解决。而利用普通数学知识&#xff0c;每座桥均走一次&#xff0c;那这七座桥所有的…

软件架构的演进过程

软件架构的发展经历了由单体架构、垂直架构、SOA架构到微服务架构的演进过程&#xff0c;下面我们分别了解一下这几个架构。 一, 单体架构 一个归档包&#xff08;例如war格式或者Jar格式&#xff09;包含了应用所有功能的应用程序&#xff0c;我们通常称之为单体应用。架构单…

共模电容:又一款EMC滤波神器?|深圳比创达电子(下)

一、共模电容 1、结构特性 图7 共模电容结构示意 如图7&#xff0c;共模电容是在普通叠层电容基础上&#xff0c;结合3端电容中为降低电容ESL的优化设计&#xff0c;添加了一组GND&#xff1b;同时这组GND还有一定的屏蔽作用&#xff0c;可降低电极的边缘辐射。 2、电气特性…

力扣18 四数之和 Java版本

文章目录 题目解题方法代码 题目 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&am…

记一次redis内存没满发生key逐出的情况。

现象&#xff1a; 从监控上看&#xff0c;redis的内存使用率最大是80%&#xff0c;但是发生了key evicted 分析&#xff1a; 原因1、可能是阿里云监控没抓取到内存100%监控数据。 阿里控制台监控监控粒度是5秒。 内存使用率的计算方法。 used_memory_human/maxmemory 原因2、…

drf之路由

一 路由Routers 对于视图集ViewSet&#xff0c;我们除了可以自己手动指明请求方式与动作action之间的对应关系外&#xff0c;还可以使用Routers来帮助我们快速实现路由信息。 REST framework提供了两个router SimpleRouterDefaultRouter 1.1 使用方法 1&#xff09; 创建r…

自编码器的基本概念

这里写目录标题 全连接自编码器卷积自编码器正则自编码器:变分自编码器2. **VAE的改进&#xff1a;**3. **关键概念&#xff1a;**4. **目标函数&#xff1a;**5. **生成新样本&#xff1a;**6. **应用领域&#xff1a;** 全连接自编码器 自编码器是一种无监督学习模型&#x…

【c++】入门2

函数重载 函数重载&#xff1a;是函数的一种特殊情况&#xff0c;C允许在同一作用域中声明几个功能类似的同名函数&#xff0c;这 些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同&#xff0c;常用来处理实现功能类似数据类型 不同的问题。 c区分重载函数是根据参数…

搬运机器人RFID传感器CNS-RFID-01|1S的RS485(MODBUS|HS协议)通讯连接方法

搬运机器人RFID传感器CNS-RFID-01|1S支持RS485通信&#xff0c;可支持RS485&#xff08;MODBUS RTU&#xff09;协议、RS485-HS协议&#xff0c;广泛应用于物流仓储&#xff0c;立库 AGV|无人叉车|搬送机器人等领域&#xff0c;常用定位、驻车等&#xff0c;本篇重点介绍CNS-RF…

oracle数据库什么是表的死锁,死锁的产生原因,怎么查询死锁的表信息,解决死锁的方法;给出具体业务场景与代码示例

oracle数据库中表的死锁 一、什么是表的死锁以及死锁的产生原因二、产生死锁的案例三、查询死锁信息解决死锁问题1 . 查询死锁信息2. 解决死锁问题 四、查看具体被死锁的SQL语句 一、什么是表的死锁以及死锁的产生原因 表的死锁是指在Oracle数据库中&#xff0c;两个或多个事务…

Ubuntu20.04-查看GPU的使用情况及输出详解

1. 查看GPU的使用情况 1.1 nvidia-smi # 直接在终端得到显卡的使用情况 # 不会自动刷新 nvidia-smi# 重定向到文件中 nvidia-smi > nvidia_smi_output.txt# 如果输出的内容部分是以省略号表示的&#xff0c;可以-q nvidia-smi -q 1.2 nvidia-smi -l # 会自动刷新&#x…

我想开发一款即时通讯APP请问还有市场吗?

随着科技的飞速发展&#xff0c;人们对于沟通工具的需求也在不断升级。在这个信息爆炸的时代&#xff0c;一款优质的即时通讯APP不仅能满足用户日常沟通需求&#xff0c;还能在市场中占据一席之地。本文将探讨开发一款即时通讯APP的市场前景&#xff0c;以及如何抓住市场机遇。…

CleanMyMac X2024免费许可证及功能详细讲解

一些用户反映自己的CleanMyMac卸载不干净&#xff1f;你的卸载方式正确码&#xff1f;当你在Mac上安装使用CleanMyMac后&#xff0c;需要将软件卸载&#xff0c;你会使用怎样方法完成操作呢&#xff1f;小编今天主要讲解如何卸载CleanMyMac以及卸载这款软件时应该注意的事项。一…

YACS(上海计算机学会竞赛平台)一星级题集——空心正方形

题目描述 给定一个正整数 n&#xff0c;请打印一个空心的正方形&#xff0c;它的边界由 * 构成&#xff0c;每条边都恰好有 n 个字符。 输入格式 单个正整数表示 n。 输出格式 输出一个边界为星号、内部空心的正方形。 数据范围 3≤n≤50。 样例数据 输入&#xff1a;…

华纳云:怎么设置Fiddler来拦截Java代码发送的HTTP请求

Fiddler是一款用于调试网络流量的工具&#xff0c;可以拦截HTTP请求和响应&#xff0c;适用于多种编程语言&#xff0c;包括Java。以下是使用Fiddler拦截Java代码发送的HTTP请求的步骤&#xff1a; 步骤一&#xff1a;安装Fiddler 下载Fiddler&#xff1a; 访问Fiddler官网下载…

android实战之TextView多行靠左实现

<TextViewandroid:layout_marginTop"dimen/dp_20"android:layout_width"wrap_content"android:layout_height"wrap_content"android:text"保证金说明"android:singleLine"false"android:maxLines"10"android:s…

【华为数据之道学习笔记】6-6从“保姆”模式到“服务+自助”模式

数据服务解决了“可供应性”&#xff0c;数据地图解决了“可搜索/可获取性”&#xff0c;当消费方获取数据后&#xff0c;提供“可分析”能力&#xff0c;帮助数据消费者结合自身需要获取想要的分析结果。 过去&#xff0c;各业务部门的分析诉求往往通过公司总部“保姆式”开发…