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和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. 笛卡尔集

Hive SQL基础语法及查询实践

目录 基础语法 1. 官网地址 2. 查询语句语法  基本查询(Select…From)  数据准备 (0)原始数据 (1)创建部门表 (2)创建员工表 (3)导入数据  全表和特定列查询 1. 全表查询 2. 选择特定列查询  列别名 1. 重命名一个列 2. 便于计算 3. 紧跟列名,也可以在列名和别名之间加入关键字 ‘AS’ 案例实操  Limit语句

Hive是什么?

Apache Hive 是一个基于 Hadoop 的数据仓库工具,用于在 Hadoop 分布式文件系统(HDFS)上管理和查询大规模结构化数据集。Hive 提供了一个类似 SQL 的查询语言,称为 HiveQL,通过这种语言可以在 HDFS 上执行 MapReduce 作业而无需编写复杂的代码。 Hive 的核心概念和特点 数据仓库工具:Hive 可以将结构化数据存储在 HDFS 上,用户可

Hive扩展功能(一)--Parquet

软件环境: linux系统: CentOS6.7Hadoop版本: 2.6.5zookeeper版本: 3.4.8 主机配置: 一共m1, m2, m3这三部机, 每部主机的用户名都为centos 192.168.179.201: m1 192.168.179.202: m2 192.168.179.203: m3 m1: Zookeeper, Namenode, DataNod