hive mysql derby_Hive修改derby为mysql数据库

一、概述

hive可以管理hdfs上的文件,用表的形式来管理文件数据。而表名、表里有哪些字段,字段类型、哪张表存在哪个数据下等这些表信息,称之为hive的元数据信息

默认情况下,hive的元数据信息不是存在hdfs上的,而是存在hive自带的derby关系型数据库里的

Hive安装完成之后,通常都需要替换元数据库,目前Hive只支持derby和mysql两种元数据库,需要将元数据库替换为MySQL

元数据的默认字符集是ISO8859-1

二、derby存在的问题

derby数据库是一种文件型的数据库,在进入时会检查当前目录下是否有metastore_db文件夹用来存储数据库数据,如果有就直接使用,如果没有就创建,这样一旦换一个目录,元数据就找不到了

derby数据库是一个单用户的数据库,无法支持多用户同时操作,而hive如果使用derby作为元数据库,则也只能支持单用户操作,这就导致在数据量大连接多的情况下会产生大量连接的积压

替换为MySQL

所以每次在不同的目录启动hive都会生成不同的derby数据文件,所以很麻烦,不如直接替换成MySQL使用

不同的目录指的是在当前目录通过路径的方式启动hive 例如在home目录下 sh /home/software/hive-1.2.2/bin/hive,就会在home目录下生成metastore_db文件

1. 将mysql驱动包上传到hive安装目录的lib目录下

下载地址:http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.38/

cp mysql-connector-java-5.1.38.jar /home/software/hive-1.2.2/lib/

2. 进入conf目录下,编辑新的配置文件,名字为:hive-site.xml

vim hive-site.xml

3. 配置相关信息:

数据库的连接信息,按照自己的数据库填写既可

javax.jdo.option.ConnectionURLname>

jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=truevalue>

property>

javax.jdo.option.ConnectionDriverNamename>

com.mysql.jdbc.Drivervalue>

property>

javax.jdo.option.ConnectionUserNamename>

rootvalue>

property>

javax.jdo.option.ConnectionPasswordname>

rootvalue>

property>

configuration>

4. 进入hive ,进入bin目录,执行:sh hive

如果出现:Access denied for user ‘root’@‘hadoop01’ (using password: YES)这个错误,指的是当前用户操作mysql数据库的权限不够

5. 使用连接工具到mysql数据库,进行权限分配

grant all privileges on *.* to 'root'@'hadoop01' identified by 'root' with grant option;

grant all on *.* to 'root'@'%' identified by 'root';

flush privileges;

638317e7d45c775d8d009094b536bc52.png

6. 进入mysql数据库,执行:create database hive character set latin1;

75f88154e10dd95dbd0310bb1f467b80.png

7. 启动hive客户端

sh hive

8. 以上步骤都做完后,再次进入mysql的hive数据,发现有如下的表:

a2c258a3900699a2d3b4789674948392.png

9. 可以通过DBS 、TBLS、COLUMNS_V2、SDS这几张表来查看元数据信息

用hive创建一个表

242d4eaa83234e687e99bac12af649e7.png

create table stu(id int,name varchar(50));

a. DBS 存放的数据库的元数据信息

96563b6c29935485e15a1456655fcb8c.png

b. TBLS存放的tables表信息

9769f1c28ad68c556cbc5829f6649fd8.png

c. COLUMNS表存放的是列字段信息3

df6b45f53125989661a76a41caa8f6aa.png

d. SDS表存放的HDFS里的位置信息

30de9d1a137c93b5518084efae95f575.png

7abe075182f29d47bdd51deb560b70ea.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值