Hive的元数据默认使用derby作为存储DB,derby作为轻量级的DB,在开发、测试过程中使用比较方便,但是在实际的生产环境中,还需要考虑易用性、容灾、稳定性以及各种监控、运维工具等,这些都是derby...MySQL和PostgreSQL是两个比较常用的开源数据库系统,在生产环境中比较多的用来替换derby,并且强烈推荐这么做。 下面就来介绍如何配置Pg或MySQL来作为Hive元数据库。...ln -s /usr/share/java/mysql-connector-java-5.1.45.jar /PATH/TO/HIVE/lib 安装Hive 在ambari上持续点击下一步,配置数据库...点击下一步,进行hive的安装。 有看到说需要初始化数据库。...以上就是配置Hive元数据库的基本过程,如有疑问,可以给我留言。
默认情况下,Hive的元数据是存储到Derby中的,这是Apache的一个纯Java编写的小巧数据库,类似于Sqlite。...但是这样就会出现一个情况:Derby是单例的,当你在一个终端打开了hive时,在另外一个终端打开hive命令行会报错。所以使用MySQL来存储元数据能够解决这个问题,并且也更方便迁移和备份。...配置Mysql服务端 安装Mysql服务器之后,你需要配置允许root用户的登录权限 打开MySQL客户端 mysql -uroot -p 使用Mysql数据库 use mysql 查询user表 select...的metastore 的MySQL数据库的字符集格式问题。...2、配置MySQL后,第一次打开hive的时候Cli无响应: 这个问题查阅了很多资料并没有找到更加详细的信息,但是经过DEBUG初步判断还是MySQL数据库的问题,导致Hive第一次启动时无法正常完成Metastore
配置Hive使用MySql存储元数据 2018-7-24 作者: 张子阳 分类: 大数据处理 默认情况下,Hive会使用Derby来存储元数据(主要是表、列、分区Partition的信息)。...Hive支持使用单独的数据库来存储元数据,比如MySql、PostgreSql等,本文将介绍如何配置Hive使用MySql存储元数据。 本文假设你已经单机安装、配置好了MySql和Hive。...的数据库(也可以在hive-site.xml中将其修改为其他名字)。...这个时候,可以登录到mysql,删除掉hive_metastore数据库,然后执行一下下面的命令,重新初始化一下元数据库: # schematool --dbType mysql --initSchema...MySql来存储Hive元数据的配置。
前一篇文章说了怎样搭建 Hive 环境,但是 Hive 使用的是默认 Derby 数据库作为元数据库,今天说说怎样把 Hive 的元数据库从默认的 Derby 改成 PostgreSQL 数据库。...安装 PostgreSQL 因为这里是侧重 Hive 的配置,所以安装和配置 PostgreSQL 的步骤就省略了。...配置 Hive 使用 PostgreSQL 编辑 ${HIVE_HOME}/conf/hive-site.xml文件,如果文件不存在,创建之。 初始化PostgreSQL $ bin/schematool -dbType postgres -initSchema 测试 $ bin/hive...hive> show databases; OK default Time taken: 0.067 seconds, Fetched: 1 row(s) hive> show tables; OK
Hive可以将结构化的数据映射为一张数据表 而默认hive进行存储的数据库是derby 启动我们的hadoop服务 当我们安装好hive后,要将mysql-connector-java-xx.jar...的文件包放到hive目录下的lib文件夹下: ?...这时候我们还需要配置相关的文件才能激活mysql数据库,我们到conf目录下的hive-site xml,设定几个mysql的相关部分: mysql用户名称: ?...mysql用户密码: ? 指定端口地址: ? 指定用mysql驱动: ?...启动完本机的mysql后,输入hive --service metastore开启mysql元数据库服务 最后输入hive即可: ?
在hive的安装目录下,进入conf目录,创建一个hive-site.xml文件 根据官方文档配置参数,拷贝数据到hive-site.xml文件中 https://cwiki.apache.org/confluence.../display/Hive/AdminManual+MetastoreAdmin 注意:先创建一个metastore数据库,字符集要用latin1 ?...(这有关上一篇安装MySQL的内容) 解压驱动包 ? 将mysql驱动复制到hive的lib目录里 ?...启动hive(别忘了先启动hdfs和yarn~~) start-dfs.sh start-yarn.sh hive 创建一张表,试试看元数据能否保存到MySQL里 ?...从上图中,可得知 元数据的结构 表的信息都存储在tbls表中,通过db_id和dbs表中的库进行外键约束! 库的信息都存储在dbs表中!
hive使用元数据库来记录相关hdfs数据文件和数据库表之间的映射关系,当创建的数据库是使用中文注释的时候,那么就会碰到乱码问题。...HIVE元数据库乱码 1 问题现象 创建一个ods层的表,使用中文进行注释,发现不能显示乱码: ?...2 检查元数据库编码 数据库显示为乱码,第一时间检查元数据库的编码,看是否是utf8编码。 ? 发现数据库编码为latin1,从而要将数据库编码修改为utf8....的元数据库,进行重新初始化 mysql> drop database hive; Query OK, 53 rows affected (0.12 sec) 3 重新初始化元数据库 使用schemtool...查看元数据库中的信息: ?
上一篇博文我们讲了怎样安装MySql,这篇文章为上篇的后续,此篇文章讲的是如何将Hive元数据配置到MySql。 本系列所用到的安装包博主已经上传到百度云盘中,如有需要的可以自取。...配置Metastore到MySql 2.1 在/opt/module/hive/conf目录下创建一个hive-site.xml 在这个时候就可以转换成hadoop用户了 [bigdata@hadoop001...mysql-connector-java-5.1.27]$ cd /opt/module/hive/conf [bigdata@hadoop001 conf]$ vim hive-site.xml 2.2...多窗口启动Hive测试 3.1 先启动MySQL [bigdata@hadoop001 mysql-libs]$ mysql -uroot -p199712 # 查看有几个数据库 mysql> show...[bigdata@hadoop001 hive]$ bin/hive 3.3 启动hive后,回到MySQL窗口查看数据库,显示增加了metastore数据库 mysql> show databases
元数据由 Hive 的元数据库(Metastore)管理,用于跟踪和管理数据库和表的元信息。通过元数据,用户可以了解数据的组织方式、存储位置以及表之间的关系等重要信息。Hive 元数据更新方式1....手动更新元数据如果因为某种原因元数据出现了不一致,可以手动更新元数据信息。可以通过 Hive 的 DESCRIBE 命令查看表的结构,或者直接访问 Hive 的元数据库修改元数据信息。...元数据存储Hive 的元数据存储在一个独立的元数据存储库中,通常来说,Hive 默认使用关系型数据库(如 MySQL、PostgreSQL)作为元数据存储后端。...这个元数据存储库中包含了关于数据表、分区、列、属性、表关系等信息。2. 元数据管理元数据在 Hive 中由元数据库(Metastore)进行管理,元数据库负责存储、维护和查询元数据信息。...通过元数据库,Hive 能够准确地定位和访问数据的存储位置,提高查询效率。3. 元数据信息在 Hive 的元数据中,主要包括以下信息:表(Table):包括表的名称、列名、列的数据类型、分区信息等。
测试环境: • CDH5.16.2 • PostgreSQL9.6 • MySQL5.7.34 • Navicat Premium 2 Hive元数据库从PG转MySQL 从PostgreSQL中导出表的数据...,但是不导表结构,表结构通过CM去创建 2.1 创建Hive元数据库 1.在MySQL中创建Hive元数据库并授权 CREATE DATABASE hive_from_pg DEFAULT CHARACTER...BY 'password'; 2.停止Hive服务,在配置中搜索“database”,修改数据库配置到MySQL库 3.在Hive -> Action中点击“创建 Hive Metastore 数据库表...”来创建表结构 4.等待命令执行完成,在MySQL中查看Hive元数据表已存在 5.执行以下SQL,修改表的字段类型 alter table SDS modify column IS_COMPRESSED...剩下几张表next_txn_id、next_compaction_queue_id、next_lock_id报错不存在,Hive使用MySQL做元数据库不需要这几张表,也没影响。
要想使用Mysql对Hive的元数据进行管理,需要在hive-site.xml配置一下(由于要修改hive-site.xml,里面内容比较多,可以将复制的删除了,新建一个空白的文件): [root@slaver3...然后对内容进行编辑,编辑内容就是Mysql的驱动,账号,密码,路径,如下所示: 如果数据库不存在自动创建:?...createDatabaseIfNotExist=true 如果hive数据库不存在就创建一个:hive?...使用命令初始化mysql数据库(用户名和密码设置): 查看安装过程中提醒的信息,主要告诉我们如何初始化数据库: [root@slaver3 hadoop]# rpm -ivh MySQL-server...将mysql的驱动包加到hive的lib里面: ?
mysql如何获取hive表的元数据信息 说明 1、通过hive的元数据库(通常为Msyql)获得,通过sql的关联即可。...= t4.SD_ID -- 以S_ID作为关联关系获取C_ID JOIN columns_v2 t5 -- 字段名称及字段注释都在此表中 ON t4.CD_ID = t5.CD_ID 以上就是mysql...获取hive表的元数据信息,希望对大家有所帮助。
在最最初配置 MySQL 数据库的时候,就设置成 UTF-8 的编码 sudo vim /etc/my.cnf [3hzjs83bsi.png] 然后在 metastore 库生成后,如果直接用 hive...too long; max key length is 767 bytes,是因为此时的 metastore 库的编码是UTF-8,这时我们把 metastore 的编码修改为 latin1,然后重启 MySQL...数据库,就OK了,使用 hive 创建表 或 库 的相关中文注释也可以正常显示了,不影响其他库,其他表的中文注释。...# 修改数据库 metastore 的编码为 latin1 alter database metastore character set latin1; # 重启 mysql 数据库 sudo service
前面我所用的表hive_table其实用hive查询时查得还是hdfs上的数据,那我们用mysql到底是存储的什么,元数据到底是什么?...元数据其实是数据的类型和我们用hive怎么拆分这个表的信息的合集,比如说我去查看我的mysql上的元数据到底长什么样 (1)先进入hive数据库(此数据库事先已经创建好,在hive的配置文件中我们已经设置好...(2)进入hive数据库 ? (3)查看此数据库里面的表 ? DBS表是一个关键的表,查看它: ? 这里就可以看见这份数据在hdfs中的位置 TBLS表 ? ?
Atlas 部署之后就可以导入 Hive 元数据,这部分工作由 Atlas 组件 Hook 来完成。...初次导入 Hive 元数据需要通过执行 shell 脚本来完成,然后,Atlas 就可以自动同步增量元数据信息了。下面我介绍一下如何完成这些工作。...初次导入 Hive 元数据 看了很多教程,按图索翼进行操作时,遇到了各种错误,还好,最后我成功了,成功的感觉真的很棒。...到这里,准备工作就做完了,依次启动 hadoop、zookeeper、hbase、hive、atlas 之后,即可执行 import-hive.sh 脚本,尝试导入 Hive 元数据,如果还有报错,对症分析或者联系我...自动同步增量元数据 Atlas Hook 可以实现自动同步增量元数据,只需要你启动 Kafka 集群即可。
概念 MetaSore 是 Hive 元数据存储的地方。Hive 数据库、表、函数等的定义都存储在 Metastore 中。根据系统配置方式,统计信息和授权记录也可以存储在此处。...hive.metastore.uris 远程元数据存储的 Thrift URI。元数据服务客户端通过该配置连接远程元数据。...javax.jdo.option.ConnectionUserName 元数据存储数据库用户名 javax.jdo.option.ConnectionPassword 元数据存储数据库密码 hive.metastore.warehouse.dir...如果选择 MySQL 作为 MetaStore 存储数据库,需要提前将 MySQL 的驱动包拷贝到 $HIVE_HOME/lib目录下。...这也可以有更好的可管理性/安全性,因为数据库层可以完全防火墙关闭。客户端不再需要与每个 Hiver 用户共享数据库凭据即可访问元存储数据库。
hive2、hive3、hive4 的元数据全部合并到 hive1 的元数据 Mysql 中,然后就可以在 hive1 中处理 hive2、hive3、hive4 中的数据。...,进行元数据迁移; 迁移过程控制在十分钟之内,以减少对迁移方的业务影响; 元数据合并的难点 hive 的元数据信息(metastore)一般是通过 Mysql 数据库进行存储的,在 hive-1.2.1...跳号值(100) 数据库操作 我们使用了 mybatis 进行了源和目标这 2 个 Mysql 的数据库操作,从源 Mysql 中按照上面的逻辑关系取出元数据修改主外健的 ID 号再插入到目标 Mysql...文件中中配置源和目的数据库的 JDBC 配置项 执行元数据迁移命令 hive-tools 会在迁移元数据之前首先检查源和目的元数据库中重名的 hive db,终止元数据迁移操作并给出提示 执行删除重名数据库命令...客户端检查目的数据库中是否能够正常使用新迁移过来的元数据 严格按照我们的元数据迁移流程已经在网易集团内部通过 hive-tools 已经成功迁移合并了大量的 hive 元数据库,没有出现过问题。
默认是使用derby这种内嵌数据库来存储在Hive中创建的表、列、分区等元数据信息,但在生产环境中肯定不会使用内嵌数据库,而是将元数据存储在外部的数据库中,例如MySQL。...所以我们还需要准备一台MySQL数据库,我这里使用的是一台现成的8.0.13版本MySQL: [root@aliyun-server ~]# mysql --version mysql Ver 8.0.13.../src]# ls apache-hive-3.1.2-bin/lib/ |grep mysql mysql-connector-java-8.0.21.jar mysql-metadata-storage...初始化数据库和表: [root@hadoop01 ~]# schematool -dbType mysql -initSchema Starting metastore schema initialization...中就可以看到表和字段的元数据信息: ?
-uroot -p 9.修改root的默认密码 alter user 'root'@'localhost' identified by 'Www_110'; 10.创建hive的数据库 create...生效 source /etc/profile 3.配置hive-site.xml 先生成一个hive-site.xml cp hive-default.xml.template hive-site.xml...schematool -dbType mysql -initSchema 5.找不到jar org.apache.hadoop.hive.metastore.HiveMetaException: Failed...https://downloads.mysql.com/archives/c-j/ 下载解压获取jar 7.复制jar到hive到lib scp -r /Users/hh/desktop/mysql-connector-java...-5.1.46-bin.jar hh555:/root/hd/apache-hive-2.3.3-bin/lib/ 8.再次重新初始化mysql schematool -dbType mysql -initSchema
hive.metastore.uris Thrift uri for the remote metastore... javax.jdo.option.ConnectionURL jdbc:mysql:/.../localhost:3306/mysql?...=true javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver.../beeline -u jdbc:hive2://yangsy132:10000/default -n root -p yangsiyi
领取专属 10元无门槛券
手把手带您无忧上云