cm安装hive连不上mysql_Hive的mysql安装配置

本文详细介绍了如何在Linux环境下安装MySQL并配置为Hive的元数据存储。内容包括MySQL的安装、Hive的MySQL配置步骤,如删除HDFS中Hive目录、上传MySQL驱动、配置hive-site.xml、分配MySQL权限、创建Hive数据库等。同时,提到了Hive元数据在MySQL中的表结构,如DBS、TBLS和COLUMNS_V2,以及如何通过Navicat连接MySQL数据库进行元数据管理。
摘要由CSDN通过智能技术生成

一、MySQL的安装

Hive的数据,是存在HDFS里的。此外,hive有哪些数据库,每个数据库有哪些表,这样的信息称之为hive的元数据信息。

元数据信息不存在HDFS,而是存在关系型数据库里,hive默认用的是derby数据库来存储。即hive工作时,除了要依赖Hadoop,还要依赖关系型数据库。

注意:虽然我们能通过HDFS查看到hive有哪些数据库,有哪些表,以及表里的数据,但是,这不是元数据信息。HDFS最主要的是存储hive的数据信息。

之前遇到的问题:当退出后,切换到不同的目录来进入hive,发现库和表没有了,是因为,第一次从bin目录进入hive,会在bin目录下创建一个metastore.db目录,在这个目录下,创建一个derby.log文件来存储

元数据信息。这个元数据信息是基于bin目录来创建的。而切换到其他目录进入hive时,查询时不是基于bin目录来查询的,所有查不到元数据信息,导致查不到。这个问题是derby数据库本身的问题,所以,我们不能用derby数据库,此外,用derby数据库,也不支持并发,比如一个人在操作hive,如果此时有其他人想用hive,用不了。所以我们选择用mysql数据库。目前hive支持derby和mysql两种数据库。

Linux下mysql的安装过程:Linux下的MySQL安装

二、Hive的mysql配置步骤

①删除HDFS中的/usr/hive

执行:hadoop fs -rmr /user/hive(需要启动hadoop)

②将mysql驱动包上传至hive的安装目录的lib目录下

我这里采用rz命令来上传:mysql-connector-java-5.1.38-bin.jar

③在hive/conf添加配置文件,名字为:hive-site.xml

javax.jdo.option.ConnectionURL

jdbc:mysql://hadoopalone:3306/hive?createDatabaseIfNotExist=true  //mysql的url

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

javax.jdo.option.ConnectionUserName //mysql的用户名

root

javax.jdo.option.ConnectionPassword //mysql的密码

root

如图所示,添加如下配置

bcdc3f5b143df39a90c893f77603bb24.png

④进入hive ,进入bin目录,执行:sh  hive

如果出现:

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

⑤进入到mysql数据库,进行权限分配

执行:grant all privileges on *.* to 'root'@'hadoopalone' identified by 'root' with grant option;

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

然后执行:flush privileges;(注意分号)

⑥手动创建Hive数据库

如果不事先在mysql里创建hive数据库,在进入hive时,mysql会自动创建hive数据库。但是注意,因为我们之前配置过mysql的字符集为utf-8,所以这个自动创建的hive数据库的字符集是utf-8的。

但是hive要求存储元数据的字符集必须是iso8859-1。如果不是的话,hive会在创建表的时候报错(先是卡一会,然后报错)。

进入mysql执行:create database hive character set latin1;

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

6d1655e289ee6b26b758e73708b2fae4.png

⑧通过navicat连接mysql数据库

509356500e31228e832e474ac94fbc10.png

⑨可以通过DBS 、TBLS、COLUMNS_V2这三张表来查看元数据信息。

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

f86a709670b0e8ddc2cb9c9cd54188f5.png

TBLS存放的tables表信息

d48bd33ebd86174110d08ed7caf02543.png

COLUMNS表存放的是列字段信息

7d3d8a13c3da710fb9338f984ab73475.png

此外,可以通过查看SDS表来查询HDFS里的位置信息

0c267a56f6168310580c5771a4fd77ba.png

至此,Hive配置mysql大功告成!如果有什么问题,大家一起留言讨论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值