hive-数据存储各种模式

转载 2016年05月31日 23:41:10
Hive的数据分为表数据和元数据,表数据是Hive中表格(table)具有的数据;而元数据是用来存储表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。下面分别来介绍。


  一、Hive的数据存储
  Hive是基于Hadoop分布式文件系统的,它的数据存储在Hadoop分布式文件系统中。Hive本身是没有专门的数据存储格式,也没有为数据建立索引,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据。所以往Hive表里面导入数据只是简单的将数据移动到表所在的目录中(如果数据是在HDFS上;但如果数据是在本地文件系统中,那么是将数据复制到表所在的目录中)。


  Hive中主要包含以下几种数据模型:Table(表),External Table(外部表),Partition(分区),Bucket(桶)(本博客会专门写几篇博文来介绍分区和桶)。


  1、表:Hive中的表和关系型数据库中的表在概念上很类似,每个表在HDFS中都有相应的目录用来存储表的数据,这个目录可以通过${HIVE_HOME}/conf/hive-site.xml配置文件中的hive.metastore.warehouse.dir属性来配置,这个属性默认的值是/user/hive/warehouse(这个目录在HDFS上),我们可以根据实际的情况来修改这个配置。如果我有一个表wyp,那么在HDFS中会创建/user/hive/warehouse/wyp目录(这里假定hive.metastore.warehouse.dir配置为/user/hive/warehouse);wyp表所有的数据都存放在这个目录中。这个例外是外部表。


  2、外部表:Hive中的外部表和表很类似,但是其数据不是放在自己表所属的目录中,而是存放到别处,这样的好处是如果你要删除这个外部表,该外部表所指向的数据是不会被删除的,它只会删除外部表对应的元数据;而如果你要删除表,该表对应的所有数据包括元数据都会被删除。


  3、分区:在Hive中,表的每一个分区对应表下的相应目录,所有分区的数据都是存储在对应的目录中。比如wyp表有dt和city两个分区,则对应dt=20131218,city=BJ对应表的目录为/user/hive/warehouse/dt=20131218/city=BJ,所有属于这个分区的数据都存放在这个目录中。


  4、桶:对指定的列计算其hash,根据hash值切分数据,目的是为了并行,每一个桶对应一个文件(注意和分区的区别)。比如将wyp表id列分散至16个桶中,首先对id列的值计算hash,对应hash值为0和16的数据存储的HDFS目录为:/user/hive/warehouse/wyp/part-00000;而hash值为2的数据存储的HDFS 目录为:/user/hive/warehouse/wyp/part-00002。



相关文章推荐

Hive的数据存储模式

  • 2017年10月08日 17:44
  • 639KB
  • 下载

hive数据存储模式

  • 2015年08月08日 16:58
  • 154KB
  • 下载

Hive的数据存储模式

写在前面的话,学Hive这么久了,发现目前国内还没有一本完整的介绍Hive的书籍,而且互联网上面的资料很乱,于是我决定写一些关于《Hive的那些事》序列文章,分享给大家。我会在接下来的时间整理有关Hi...

Hive数据存储的各种模式

Hive的数据分为表数据和元数据,表数据是Hive中表格(table)具有的数据;而元数据是用来存储表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。下面分别来介绍。一、...

hive数据存储各种模式

Hive的数据分为表数据和元数据,表数据是Hive中表格(table)具有的数据;而元数据是用来存储表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。下面分别来介绍。  ...

让你彻底明白hive数据存储各种模式

问题导读 1.hive数据分为那两种类型? 2.什么表数据? 3.什么是元数据? 4.Hive表里面导入数据的本质什么? 5.表、分区、桶之间之间的关系是什么? 6.外部表和表的区别是什么...

hadoop随笔三之hive2.1安装(元数据存储oracle)

1.官网下载hive2.1,并解压 2.配置/etc/profile 3.配置hive-site.xml 将模版复制cp 一份,并配置连接oracle信息 . 4。执行命令 schematool ...

hive安装过程:metastore(元数据存储)的三种方式之远端mysql方式

Hive版本:apache-hive-1.2.1 Hadoop版本:hadoop-2.5.1Hive中metastore(元数据存储)的三种方式:    a)本地Derby方式    b)本地m...

hive安装过程:metastore(元数据存储)的三种方式之本地derby方式

Hive版本:apache-hive-1.2.1 Hadoop版本:hadoop-2.5.1Hive中metastore(元数据存储)的三种方式:    a)本地Derby方式    b)本地m...

hive的3种数据存储格式

hive有textFile,SequenceFile,RCFile三种文件格式。 其中textfile为默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hive-数据存储各种模式
举报原因:
原因补充:

(最多只允许输入30个字)