一、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

  1. <configuration>
  2. <property>
  3. <name>javax.jdo.option.ConnectionURL</name>
  4. <value>jdbc:mysql://hadoopalone:3306/hive?createDatabaseIfNotExist=true</value>  //mysql的url
  5. </property>
  6. <property>
  7. <name>javax.jdo.option.ConnectionDriverName</name>
  8. <value>com.mysql.jdbc.Driver</value>
  9. </property>
  10. <property>
  11. <name>javax.jdo.option.ConnectionUserName</name> //mysql的用户名
  12. <value>root</value>
  13. </property>
  14. <property>
  15. <name>javax.jdo.option.ConnectionPassword</name> //mysql的密码
  16. <value>root</value>
  17. </property>
  18. </configuration>

  如图所示,添加如下配置

④进入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数据,发现有如下表:

  

⑧通过navicat连接mysql数据库

  

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

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

  

TBLS存放的tables表信息

  

COLUMNS表存放的是列字段信息

  

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

  

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

Hive的mysql安装配置的更多相关文章

  1. Linux下的Mysql安装 & 配置

    Hive的数据,是存在HDFS里的.此外,hive有哪些数据库,每个数据库有哪些表,这样的信息称之为hive的元数据信息. 元数据信息不存在HDFS里.而是存在关系型数据库里,hive默认用的是der ...

  2. Linux(Manjaro) - Docker - MySQL 安装配置

    Linux(Manjaro) - Docker - MySQL 安装配置 拉取mysql镜像 # 使用网易的 MySQL 镜像地址 docker pull hub.c.163.com/library/ ...

  3. MySQL---5、可视化工具Navicat for MySQL安装配置

    一.安装文件包下载 Navicat for MySQL 安装软件和破解补丁: 链接:https://pan.baidu.com/s/1oKcErok_Ijm0CY9UjNMrnA   密码:4xb1 ...

  4. FreeRADIUS + MySQL 安装配置笔记

    FreeRADIUS + MySQL 安装配置笔记 https://www.2cto.com/net/201110/106597.html

  5. mysql 安装配置及经常使用操作

    作为关系型数据库的一种,mysql因其占用内存小和开源等特性而兴起.以下简介下关于mysql配置和简单的操作. mysql配置 1.安装文件的下载 免安装版下载地址 :http://dev.mysql ...

  6. Linux-CentOS7环境MySQL安装配置

    Linux-CentOS7环境MySQL安装配置 1. 安装准备 (1)检查MySQL是否已安装 (2)如果有的话,就全部卸载 2. 安装libaio (1)检索相关信息: (2)安装依赖包: 3. ...

  7. Hive on Spark安装配置详解(都是坑啊)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...

  8. hive集群安装配置

    hive 是JAVA写的的一个数据仓库,依赖hadoop.没有安装hadoop的,请参考http://blog.csdn.net/lovemelovemycode/article/details/91 ...

  9. hive上mysql元数据库配置

    hive调试信息显示模式: ./hive -hiveconf hive.root.logger=DEBUG,console 非常有用. 默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只 ...

随机推荐

  1. Unity Coroutine详解(二)

    •        介绍•        Part 1. 同步等待•        Part 2. 异步协程•        Part 3. 同步协程•        Part 4. 并行协程 1.介绍 ...

  2. codeforces C. Primes and Multiplication(快速幂 唯一分解定理)

    题目链接:http://codeforces.com/contest/1228/problem/C 题解:给定一个函数f,g,题目有描述其中的表达式含义和两者之间的关系. 然后计算: 首先把给定的x用 ...

  3. 用Python开发实用程序 – 计算器

    一段时间前,自己制作了一个库 “sui-math”.这其实是math的翻版.做完后,python既然可以轻易的完成任何的数学计算,何不用python开发一个小程序专门用以计算呢? 现在我们越来越依赖于 ...

  4. 普及C组第四题(8.2)

    1342. [南海2009初中]cowtract(网络) (Standard IO) 题目:  Bessie受雇来到John的农场帮他们建立internet网络.农场有 N (2<= N < ...

  5. frm、myd、myi、opt、par文件

    .frm 表结构文件 .myd 表数据文件 .myi 表索引文件 .opr 储存数据库的默认字符集 .par 储存分区信息 mysql 5.6版本分区表有一个文件:表名.par, 该文件在5.7.6版 ...

  6. gitlab创建项目及分支

    链接:https://blog.51cto.com/13760226/2426209

  7. MySQL 学习(三)事务学习

    事务隔离级别     SQL标准的事务隔离级别包括:读未提交(read uncommitted).读提交(read committed).可重复读(repeatable read)和串行化(seria ...

  8. Atcoder Beginner Contest152F(DFS+状压DP)

    二维状压写成一维状压,省略加上第i条边这一维 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace st ...

  9. 项目中报错:Unsupported major.minor version

    在开发中或多或少都会遇到如下报错: java.lang.UnsupportedClassVersionError: com/xie/IntegerTest : Unsupported major.mi ...

  10. 讲解一下类的继承super

    class Test1(object): def __init__(self,ids): self.ids=ids class Par(Test1): def __init__(self,ids,us ...