HIVE与mysql的关系

Hive是一个基于Hadoop的数据仓库平台。通过hive,我们可以方便地进行ETL的工作。hive定义了一个类似于SQL的查询语言:HQL,能 够将用户编写的QL转化为相应的Mapreduce程序基于Hadoop执行。

Hive是Facebook 2008年8月刚开源的一个数据仓库框架,其系统目标与 Pig 有相似之处,但它有一些Pig目前还不支持的机制,比如:更丰富的类型系统、更类似SQL的查询语言、Table/Partition元数据的持久化等。

Hive
 
可以看成是从SQL到Map-Reduce的
 
映射器

hive的组件和体系架构:

hive web接口启动:./hive --service hwi

浏览器访问:http://localhost:9999/hwi/

默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持。

Hive安装

内嵌模式:元数据保持在内嵌的Derby模式,只允许一个会话连接

本地独立模式:在本地安装Mysql,把元数据放到Mysql内

远程模式:元数据放置在远程的Mysql数据库。

Hive的数据放在哪儿?

数据在HDFS的warehouse目录下,一个表对应一个子目录。

本地的/tmp目录存放日志和执行计划

hive的表分为两种,内表和外表。 
Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。 
在删除表的时候,内部表的元数据和数据会被一起删除, 而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。

使用Mysql作为Hive metaStore的存储数据库

其中主要涉及到的表如下:

表名 说明 关联键
TBLS 所有hive表的基本信息(表名,创建时间,所属者等) TBL_ID,SD_ID
TABLE_PARAM 表级属性,(如是否外部表,表注释,最后修改时间等) TBL_ID
COLUMNS Hive表字段信息(字段注释,字段名,字段类型,字段序号) SD_ID
SDS 所有hive表、表分区所对应的hdfs数据目录和数据格式 SD_ID,SERDE_ID
SERDE_PARAM 序列化反序列化信息,如行分隔符、列分隔符、NULL的表示字符等 SERDE_ID
PARTITIONS Hive表分区信息(所属表,分区值) PART_ID,SD_ID,TBL_ID
PARTITION_KEYS Hive分区表分区键(即分区字段) TBL_ID
PARTITION_KEY_VALS Hive表分区名(键值) PART_ID
时间: 2024-09-30 15:38:05

HIVE与mysql的关系的相关文章

HIVE配置mysql metastore

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

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

用mysql workbench导出mysql数据库关系图

用mysql workbench导出mysql数据库关系图 1. 打开mysql workbench,选择首页中间"Data Modeling"下方的第二栏"Create EER Model From Existing Database";2. 在"Stored Connection"里选择"Manage Stored Connections...";3. 在Manage DB Connections里选择“New”新建连接,

Hive集成Mysql作为元数据时,提示错误:Specified key was too long; max key length is 767 bytes

在进行Hive集成Mysql作为元数据过程中,做完所有安装配置工作后,进入到hive模式,执行show databases:执行正常,接着执行show tables:时却报错. 关键错误信息如下: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes) 具体操作信息如下: hive> show databases; OK

hive上mysql元数据库配置

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

2.Hive链接Mysql

安装MySQL参见 http://zhangyanfeng.blog.51cto.com/3884312/1733463 在hive中的conf文件中创建hive-site.xml并写入hive链接MySQL配置信息 <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.0.207:3306/hive?c

hive 与mysql集成安装

Hive集成Mysql作为元数据 默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试.为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持,配置一个独立的元数据库需要增加以下几步骤: 第一步:安装MySQL服务器端和MySQL客户端,并启动MySQL服务.此步省略,具体请看http://www.cnblogs.com/linjiqin/archive/2013/03/0

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

HIve通过mysql元数据表删除分区

1 创建表 hive命令行操作 CREATE TABLE IF NOT EXISTS emp( name STRING, salary FLOAT, subordinates ARRAY<STRING>, deductions MAP<STRING,FLOAT>, address STRUCT<street:STRING,city:STRING,province:STRING,zip:INT> ) PARTITIONED BY (province STRING,city