Hive的metastore及其配置管理

2023-10-12 08:08
文章标签 配置管理 hive metastore

本文主要是介绍Hive的metastore及其配置管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在学习Hive的配置管理参数时,曾将参数分为四类:Hive管理参数、Hive元存储(Metastore)管理参数、与Hadoop交互的管理参数、用于传递运行时信息的参数,当时并没有对Metastore参数进行深入的学习,现在就开始学习这部分的内容。

Hive中表和分区的所有元数据都存储在Hive的元存储(Metastore)中。元数据使用JPOX(Java Persistent Objects)对象关系映射解决方案进行持久化,所以任何被JPOX支持的存储都可以被Hive使用。大多数商业关系型数据库和许多开源的数据存储都被支持,所以就可以被Hive使用存储元数据。Hive支持三种不同的元存储服务器,分别为:内嵌式元存储、本地元存储、远程元存储,每种存储方式使用不同的配置参数,相关的配置参数如下表所示:

配置参数

描述

javax.jdo.option.ConnectionURL

包含元数据的数据存储的JDBC连接字符串。默认值为jdbc:derby:;databaseName=metastore_db;create=true。

javax.jdo.option.ConnectionDriverName

包含元数据的数据存储的JDBC驱动类名称。默认值为org.apache.derby.jdbc.EmbeddedDriver。

hive.metastore.uris

Hive连接到该URI请求远程元存储的元数据。默认值为空。

hive.metastore.local

本地或者远程数据存储 (Hive-0.10已经不再使用该参数: 如果hive.metastore.uris为空值则为本地模式,否则为远程模式)。

hive.metastore.warehouse.dir

本地表的默认位置,默认值为/user/hive/warehouse。

hive.metastore.metadb.dir

hive.metastore.rawstore.impl

实现org.apache.hadoop.hive.metastore.rawstore接口的类,该类用于存储和检索行元数据对象,如表、数据库。

hive.metastore.ds.connection.url.hook

提取JDO连接URL的钩子名称,若为空,则使用javax.jdo.option.ConnectionURL中的值。

hive.metastore.server.min.threads

Thrift服务器池中工作线程的最小数量,默认值为200。

hive.metastore.server.max.threads

Thrift 服务器池中工作线程的最大数量,默认值为10000。

hive.hmshandler.retry.attempts

在JDO数据存储出现错误后尝试连接的次数默认值为1。

hive.hmshandler.retry.interval

尝试间隔的毫秒数,默认值为1000。

前面提到Hive支持三种元存储方式,默认方式为内嵌式元存储。下面分别对三种存储方式如何配置进行学习。

内嵌式元存储
       内嵌式元存储主要用于单元测试,在该模式下每次只有一个进程可以连接到元存储,Derby是内嵌式元存储的默认数据库。内嵌式元存储的配置如下:

配置参数

描述

javax.jdo.option.ConnectionURL

jdbc:derby:;databaseName=metastore_db;create=true

包含元数据的数据存储的JDBC连接字符串。

javax.jdo.option.ConnectionDriverName

org.apache.derby.jdbc.EmbeddedDriver

JDBC驱动类。

hive.metastore.warehouse.dir

/user/hive/warehouse

本地表的默认位置。

hive.metastore.uris

空值

内嵌式也是本地模式,所以为空值。

本地元存储
       在本地模式下,每个Hive客户端都会打开到数据存储的连接并在该连接上请求SQL查询。下表展示了如何在MySQL数据库服务器中建立元存储,确保在Hive查询被执行的机器上是可以访问该数据库服务器的,同时确保JDBC类库在Hive客户端的类路径中。

配置参数

描述

javax.jdo.option.ConnectionURL

jdbc:mysql:///?createDatabaseIfNotExist=true

元数据存储在MySQL数据库中。

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

MySQL JDBC驱动类。

javax.jdo.option.ConnectionUserName

连接MySQL的用户名。

javax.jdo.option.ConnectionPassword

连接MySQL的密码。

hive.metastore.uris

空值

本地模式下为空值。

hive.metastore.warehouse.dir

/user/hive/warehouse

Hive表的默认位置。

远程元存储
       在远程模式下,所有的Hive客户端都将打开一个到元数据服务器的连接,该服务器依次查询元数据。元数据服务器和客户端之间使用Thrift协议通信,从Hive-0.5.0开始,可以执行下面的命令启动Thrift服务器:

hive–service metastore

下面以MySQL为例,分别学习服务器端和客户端的配置,服务器端的配置如下表所示:

配置参数

描述

javax.jdo.option.ConnectionURL

jdbc:mysql:///?createDatabaseIfNotExist=true

元数据存储在MySQL数据库中。

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

MySQL JDBC驱动类。

javax.jdo.option.ConnectionUserName

连接MySQL的用户名。

javax.jdo.option.ConnectionPassword

连接MySQL的密码。

hive.metastore.warehouse.dir

/user/hive/warehouse

Hive表的默认位置。

客户端的配置为:

配置参数

描述

hive.metastore.uris

thrift://<host_name>:

Thrift元存储服务器的主机和端口号。

hive.metastore.warehouse.dir

/user/hive/warehouse

Hive表的默认位置。

在启动客户端和元存储服务器之前需要将JDBC驱动类库放到$HIVE_HOME/lib目录下。

作者:skyWalker_ONLY
来源:CSDN
原文:https://blog.csdn.net/skywalker_only/article/details/26219619
版权声明:本文为博主原创文章,转载请附上博文链接!

这篇关于Hive的metastore及其配置管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/194479

相关文章

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

SpringCloud之consul服务注册与发现、配置管理、配置持久化方式

《SpringCloud之consul服务注册与发现、配置管理、配置持久化方式》:本文主要介绍SpringCloud之consul服务注册与发现、配置管理、配置持久化方式,具有很好的参考价值,希望... 目录前言一、consul是什么?二、安装运行consul三、使用1、服务发现2、配置管理四、数据持久化总

java如何通过Kerberos认证方式连接hive

《java如何通过Kerberos认证方式连接hive》该文主要介绍了如何在数据源管理功能中适配不同数据源(如MySQL、PostgreSQL和Hive),特别是如何在SpringBoot3框架下通过... 目录Java实现Kerberos认证主要方法依赖示例续期连接hive遇到的问题分析解决方式扩展思考总

Hive和Hbase的区别

Hive 和 HBase 都是 Hadoop 生态系统中的重要组件,它们都能处理大规模数据,但各自有不同的适用场景和设计理念。以下是两者的主要区别: 1. 数据模型 Hive:Hive 类似于传统的关系型数据库 (RDBMS),以表格形式存储数据。它使用 SQL-like 语言 HiveQL 来查询和处理数据,数据通常是结构化或半结构化的。HBase:HBase 是一个 NoSQL 数据库,基

掌握Hive函数[2]:从基础到高级应用

目录 高级聚合函数 多进一出 1. 普通聚合 count/sum... 2. collect_list 收集并形成list集合,结果不去重 3. collect_set 收集并形成set集合,结果去重  案例演示 1. 每个月的入职人数以及姓名  炸裂函数  概述  案例演示 1. 数据准备 1)表结构 2)建表语句 3)装载语句 2. 需求 1)需求说明 2)答

【kubernetes】配置管理中心Configmap运用

一,介绍 Configmap(简写 cm)是k8s中的资源对象,用于保存非机密性的配置的,数据可以用key/value键值对的形式保存,也可通过文件的形式保存。 【局限性】:在ConfigMap不是用来保存大量数据的,其数据量不可超过1 MiB。 kubectl get cm 二,功能 Configmap资源对象,可以有一个或者多个Configmap,通过 volume 形式映射到容器

【Hive Hbase】Hbase与Hive的区别与联系

问题导读: Hive与Hbase的底层存储是什么? hive是产生的原因是什么? habase是为了弥补hadoop的什么缺陷? 共同点: 1.hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储 区别: 2.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目

【hive 日期转换】Hive中yyyymmdd和yyyy-mm-dd日期之间的切换

方法1: from_unixtime+ unix_timestamp--20171205转成2017-12-05 select from_unixtime(unix_timestamp('20171205','yyyymmdd'),'yyyy-mm-dd') from dual;--2017-12-05转成20171205select from_unixtime(unix_timestamp

【hive 函数】Hive分析函数和窗口函数

拿一个例子来说 数据集: cookie1,2015-04-10 10:00:02,url2 cookie1,2015-04-10 10:00:00,url1 cookie1,2015-04-10 10:03:04,1url3 cookie1,2015-04-10 10:50:05,url6 cookie1,2015-04-10 11:00:00,url7 cookie1,2

Hive SQL 分组与连接操作详解

目录 分组 Group By语句 1. 案例实操  Having语句 1. having 与 where 不同点 2. 案例实操  Join语句  等值Join 1. 案例实操  表的别名 1. 好处 2. 案例实操  内连接  左外连接  右外连接  满外连接  多表连接 1. 创建位置表 2. 导入数据 3. 多表连接查询  笛卡尔集 1. 笛卡尔集