HIVE配置mysql metastore

HIVE配置mysql metastore
    hive中除了保存真正的数据以外还要额外保存用来描述库、表、数据的数据,称为hive的元数据。这些元数据又存放在何处呢?
    如果不修改配置hive默认使用内置的derby数据库存储元数据。
    derby是apache开发的基于java的文件型数据库。
    可以检查之前执行命令的目录,会发现其中产生了一个metastore.db的文件,这就是derby产生的用来保存元数据的数据库文件。

derby数据库仅仅用来进行测试,真正使用时会有很多限制。
    最明显的问题是不能支持并发。
    经测试可以发现,在同一目录下使用无法同时开启hive,不同目录下可以同时开启hive但是会各自产生metastore.db文件造成数据无法共同访问。
    所以真正生产环境中我们是不会使用默认的derby数据库保存hive的元数据的。

hive目前支持derby和mysql来存储元数据。

配置hive使用mysql保存元数据信息:
        删除hdfs中的/user/hive
            hadoop fs -rmr /user/hive    
        复制hive/conf/hive-default.xml.template为hive-site.xml
            cp hive-default.xml.template hive-site.xml
        在<configuration>中进行配置
            <property>
              <name>javax.jdo.option.ConnectionURL</name>
              <value>jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true</value>
              <description>JDBC connect string for a JDBC metastore</description>
            </property>

<property>
              <name>javax.jdo.option.ConnectionDriverName</name>
              <value>com.mysql.jdbc.Driver</value>
              <description>Driver class name for a JDBC metastore</description>
            </property>

<property>
              <name>javax.jdo.option.ConnectionUserName</name>
              <value>root</value>
              <description>username to use against metastore database</description>
            </property>

<property>
              <name>javax.jdo.option.ConnectionPassword</name>
              <value>root</value>
              <description>password to use against metastore database</description>
            </property>

!!手动创建hive元数据库,注意此库必须是latin1,否则会出现奇怪问题!所以推荐手动创建!并且创建库之前不能有任意的hive操作,否则自动创建出来的库表将使用mysql默认的字符集,仍然报错!
        !!另一种方法是修改mysql的配置文件,让mysql默认编码集就是latin1,这样hive自动创建的元数据库就是latin1的了,但是这已修改将会影响整个mysql数据库,如果mysql中有其他库,这种方式并不好。
            create database hive character set latin1;

将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
        
        如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
            mysql -uroot -p
            #(执行下面的语句  *.*:所有库下的所有表   %:任何IP地址或主机都可以连接)
            GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘root‘ WITH GRANT OPTION;
            FLUSH PRIVILEGES;
    
        再进入hive命令行,试着创建库表发现没有问题。
                
        测试发现开启多个连接没有问题。

连接mysql,发现多了一个hive库。其中保存有hive的元数据。DBS-数据库的元数据信息,TBLS-表信息。COLUMNS_V2表中字段信息,SDS-表对应hdfs目录

时间: 2024-10-15 11:34:01

HIVE配置mysql metastore的相关文章

hadoop中hive配置mysql

1.首先下载hive 下载地址   选择带有 bin 选项的  ,不然以后还要自己编译 解压安装 移动到/usr/local/hive  下 进入hive目录,进入conf cp hive-env.sh.template hive-env.sh cp hive-default.xml.template hive-site.xml cp hive-log4j2.properties.template hive-log4j2.propertiescp hive-exec-log4j.properti

Hive的mysql安装配置

一.MySQL的安装 Hive的数据,是存在HDFS里的.此外,hive有哪些数据库,每个数据库有哪些表,这样的信息称之为hive的元数据信息. 元数据信息不存在HDFS,而是存在关系型数据库里,hive默认用的是derby数据库来存储.即hive工作时,除了要依赖Hadoop,还要依赖关系型数据库. 注意:虽然我们能通过HDFS查看到hive有哪些数据库,有哪些表,以及表里的数据,但是,这不是元数据信息.HDFS最主要的是存储hive的数据信息. 之前遇到的问题:当退出后,切换到不同的目录来进

Hive初步使用、安装MySQL 、Hive配置MetaStore、配置Hive日志《二》

一.Hive的简单使用 基本的命令和MySQL的命令差不多 首先在 /opt/datas 下创建数据  students.txt 1001 zhangsan 1002 lisi 1003 wangwu 显示有多少数据库: show databases; 使用某个数据库: use 数据库名称; 显示当前数据库下的表: show tables; 创建数据表 : create table student (id int,name string) ROW FORMAT DELIMITED FIELDS

hive上mysql元数据库配置

hive调试信息显示模式: ./hive -hiveconf hive.root.logger=DEBUG,console 非常有用. 默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试.为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持,配置一个独立的元数据库需要增加以下几步骤: 第一步:安装MySQL服务器端和MySQL客户端,并启动MySQL服务.此步省略,具体

Hadoop Hive安装,配置mysql元数据库

由于Hive依赖于Hadoop,安装Hive之前必须确认Hadoop可用,关于Hadoop的安装可以参考集群分布式 Hadoop安装详细步骤,这里不再叙述. 1.下载Hive安装包 下载地址为:http://www.apache.org/dyn/closer.cgi/hive(或点击下面链接),选择一个稳定版本,假设下载的版本为:apache-hive-1.0.1-bin.tar.gz,解压: tar -zxvf apache-hive-1.0.1-bin.tar.gz 在apache的下载列表

hive的mysql配置笔记

配置hive使用mysql数据库 ------------------------ 1.下载并加压hive.tar.gz 2.配置环境变量 HIVE_HOME=... PATH=..:$HIVE_HOME/bin:$HIVE_HOME/conf $>source /etc/environment 3.创建配置文件 $>cd conf $ cp hive-default.xml.template hive-site.xml $ cp hive-env.sh.template hive-env.s

spark sql metastore 配置 mysql

本文主要介绍如何为 spark sql 的 metastore 配置成 mysql . spark 的版本 2.4.0 版本 hive script 版本为 hive 1.2.2 mysql 为 5.7.18 mysql 的安装部署就不在这里介绍了. 首先为 mysql 的root 用户设置密码 mysql -uroot > set password= password('mysql'); 设置mysql 允许其他机器登录 > GRANT ALL PRIVILEGES ON *.* TO 'r

Hive的下载安装,以及配置mysql作为元数据库

hive下载地址: http://www.apache.org/dyn/closer.cgi/hive/ 安装部署: 解压hive源程序: sudo tar -zxvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/local # 解压到/usr/local中 cd /usr/local/ sudo mv apache-hive-1.2.1-bin hive # 将文件夹名改为hive sudo chown -R dblab:dblab hive # 修改文件权限

hive 的mysql配置

hive默认使用的是Derby数据库,Derby是一个嵌入式数据库,数据库一般创建在运行hive命令的目录,如果切换目录运行,则找不到数据库 hive mysql配置: 官网地址:https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin hive配置文件目录下创建文件:hive-site.xml,配置如下 <configuration> <property> <name>jav