hive元数据库配置、metadata

一、什么是hive元数据?

hive元数据就是hive的一些基本的元素,主要包括hive表的基本属性,如下

(1)hive表的数据库名、表名、字段名称与类型、分区字段与类型

(2)表的分区,分区的属性location等

(3)serdeproperties, tblproperties等等

可以通过

desc formatted tablename

查看表有哪些属性

二、hive默认元数据库Derby(嵌入模式)

hive-default.xml通过如下配置设置

  1. <name>javax.jdo.option.ConnectionURL</name>
  2. <value>jdbc:derby:;databaseName=metastore_db;create=true</value>
  3. <description>JDBC connect string for a JDBC metastore</description>
  4. </property>
  5. <property>
  6. <name>javax.jdo.option.ConnectionDriverName</name>
  7. <value>org.apache.derby.jdbc.EmbeddedDriver</value>
  8. <description>Driver class name for a JDBC metastore</description>
  9. </property>

Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。所以hive采用了Derby作为一个内嵌的元数据库,可以完成hive安装的简单测试。

hive安装完成之后,就可以在hive shell中执行一些基本的操作,创建表、查询等等。如果你细心的话,就会发现一个问题:

当在某个目录下启动终端,进入hive shell时,hive默认会在当前目录下生成一个derby文件和一个metastore_db目录,这两个文件主要保存刚刚在shell中操作的一些sql的结果,比如新建的表、添加的分区等等

这种存储方式的带来弊端

1.在同一个目录下同时只能有一个hive客户端能使用数据库

2.切换目录启动新的shell,无法查看之前创建的表,不能实现表数据的共享

三、使用mysql作为元数据库

由于使用默认的元数据库有些弊端,所以采用mysql保存hive元数据解决上面的问题。hive所有的元数据都保存在同一个库里,这样不同开发者创建的表可以实现共享。

mysql配置又分为几种情况:

(1)mysql部署在hive服务器,使用本地服务(测试、学习使用)

(2)mysql部署在其他机器,hive服务器开启metadata服务,在hive服务器上操作hive

(3)mysql部署在其他机器,hive服务器开启metadata服务,在hive客户端访问hive的metadata服务

配置mysql:

配置mysql时,首先要把mysql-jdbc-driver.jar拷贝到$HIVE_HOME/lib目录下,修改hive-default.xml名字为hive-site.xml

第一种情况,hive-site.xml配置如下

  1. <property>
  2. <name>hive.metastore.local</name>
  3. <value>true</value>
  4. </property>
  5. <property>
  6. <name>javax.jdo.option.ConnectionURL</name>
  7. <value>jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true</value>
  8. </property>
  9. <property>
  10. <name>javax.jdo.option.ConnectionDriverName</name>
  11. <value>com.mysql.jdbc.Driver</value>
  12. </property>
  13. <property>
  14. <name>javax.jdo.option.ConnectionUserName</name>
  15. <value>hive</value>
  16. </property>
  17. <property>
  18. <name>javax.jdo.option.ConnectionPassword</name>
  19. <value>password</value>
  20. </property>

第二种情况,hive-site.xml配置

  1. <property>
  2. <name>javax.jdo.option.ConnectionURL</name>
  3. <value>jdbc:mysql://192.168.0.1:3306/hive?createDatabaseIfNotExist=true</value>
  4. </property>
  5. <property>
  6. <name>javax.jdo.option.ConnectionDriverName</name>
  7. <value>com.mysql.jdbc.Driver</value>
  8. </property>
  9. <property>
  10. <name>javax.jdo.option.ConnectionUserName</name>
  11. <value>hive</value>
  12. </property>
  13. <property>
  14. <name>javax.jdo.option.ConnectionPassword</name>
  15. <value>password</value>
  16. </property>
  17. <property>
  18. <name>hive.metastore.local</name>
  19. <value>false</value>
  20. </property>
  21. <property>
  22. <name>hive.metastore.uris</name>
  23. <value>thrift://192.168.0.101:9083</value>
  24. </property>

第三种情况,hive-site.xml配置

1、 服务端配置

  1. <property>
  2. <name>javax.jdo.option.ConnectionURL</name>
  3. <value>jdbc:mysql://192.168.1.214:3306/hive?createDatabaseIfNotExist=true</value>
  4. </property>
  5. <property>
  6. <name>javax.jdo.option.ConnectionDriverName</name>
  7. <value>com.mysql.jdbc.Driver</value>
  8. </property>
  9. <property>
  10. <name>javax.jdo.option.ConnectionUserName</name>
  11. <value>hive</value>
  12. </property>
  13. <property>
  14. <name>javax.jdo.option.ConnectionPassword</name>
  15. <value>password</value>
  16. </property>

2、客户端配置

  1. <property>
  2. <name>hive.metastore.local</name>
  3. <value>false</value>
  4. </property>
  5. <property>
  6. <name>hive.metastore.uris</name>
  7. <value>thrift://192.168.0.101:9083</value>
  8. </property>

在使用hive开始前,如果mysql是部署在远端且 hive.metastore.local=false

则需要启动hive的metadata服务

  1. $ hive --service metastore

客户端使用hive命令即可

  1. [email protected]:~$ hive
  2. hive> show tables;
  3. OK
  4. Time taken: 0.7 seconds
  5. hive>
时间: 2024-10-19 07:02:05

hive元数据库配置、metadata的相关文章

Hive的配置详解和日常维护

Hive的配置详解和日常维护 一.Hive的参数配置详解 1>.mapred.reduce.tasks  默认为-1.指定Hive作业的reduce task个数,如果保留默认值,则Hive 自己决定应该使用多少个task. 2>.hive.mapred.mode  2.x下的默认值为strict,1.x以及之前的版本默认值为nonstrict.如果 设为strict,Hive将禁止一些危险的查询:分区表未用分区字段筛选: order by语句后未跟limit子句:join后没有on语句从而形

Hive安装配置及基本操作

Hive安装配置及基本操作 1. Hive安装及配置 (1). 上传文件到Hadoop102节点,解压到/opt/moudle (2). 修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh [[email protected] conf]$ cp hive-env.sh.template hive-env.sh (3). 配置hive-env.sh文件 ? (a). 配置HADOOP_HOME路径 : export HADO

关于HIVE的配置

关于HIVE的配置 一:安装配置hive 1.检测hadoop 2.解压hive 3.修改环境 sudo vi /etc/profile 4.source以下 5.复制hive-env.sh 6.编辑hive-env.sh 7.在HDFS上创建文件夹并修改写权限 8.验证hive的安装 二:操作hive 1.显示有哪些数据库 2.创建数据库 3.在新建的数据库中新建表 使用新建的数据库 use hadoop09: 4.加载数据 首先要书写数据: 加载数据: 5.HDFS里文件的分布 6.hive

hive 元数据库表描述

元数据库表描述 这一节描述hive元数据库中比较重要的一些表的作用,随着后续对hive的使用逐渐补充更多的内容. mysql元数据库hive中的表: 表名 作用 BUCKETING_COLS 存储bucket字段信息,通过SD_ID与其他表关联 CDS 一个字段CD_ID,与SDS表关联 COLUMNS_V2 存储字段信息,通过CD_ID与其他表关联 DATABASE_PARAMS 空 DBS 存储hive的database信息 DELETEME1410257703262 空 FUNCS 空 F

Hive参数配置

1. Hive 命令行输入$HIVE_HOME/bin/hive –H 或者 –help可以显示帮助选项:说明:1. -i 初始化HQL文件.2. -e从命令行执行指定的HQL3. -f 执行HQL脚本4. -v 输出执行的HQL语句到控制台5. -p <port> connect to Hive Server on port number6. -hiveconf x=y Use this to set hive/hadoop configuration variables.例如:$HIVE_

Hive的配置| 架构原理

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能. 本质是:将HQL转化成MapReduce程序 1)Hive处理的数据存储在HDFS 2)Hive分析数据底层的实现是MapReduce 3)执行程序运行在Yarn上 Hive架构原理 Hive安装及配置 (1)把apache-hive-1.2.1-bin.tar.gz上传到linux的/opt/software目录下 (2)解压apache-hive-1.2.1-bin.tar.gz到/o

Mac上Hive安装配置

Mac上Hive安装配置 1.安装 下载hive,地址:http://mirror.bit.edu.cn/apache/hive/ 之前我配置了集群,tjt01.tjt02.tjt03,这里hive安装在tjt01机器上. 我下载的是“apache-hive-3.0.0-bin.tar.gz”,将hive 3.0版本上传到/opt目录,并解压到/usr/local下: [[email protected] ~]# cd /opt [[email protected] opt]# tar -zxv

ubuntu16.04 安装hive及配置

1.下载hive http://mirror.bit.edu.cn/apache/hive/ 2.解压文件 tar -xvf apache-hive-3.1.2-bin.tar.gz 修改名称 mv apache-hive-3.1.2 hive 3.配置环境变量 1.修改~/.bashrc文件 vim ~/.bashrc 添加 export HIVE_HOME=/home/user/server/hive export PATH=$PATH:$HIVE_HOME/bin //立即生效source

hive上mysql元数据库配置

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