Hive简介

什么是Hive?

Hive是建立在Hadoop上的一套类似SQL的访问接口,可以通过Hive QL实现MapReduce Job的工作。

Hive的缺点:

1.由于Hadoop是批处理系统,具有延迟性,所以Hive即使处理非常小的数据集也会出现延迟现象。

2.Hive不提供排序和查询Cache功能,不提供在线事务处理,也不提供实时的在线查询和记录级的更新。

什么是Hive元数据?

管理Hive的数据,所有的表名,列名,库名,分区名等等都使存储在元数据中。Hive的元数据面临更新修改和读取操作故存储在RDBMS中。

Hive的数据存储:

Hive中主要包含四类数据模型:表,分区,桶,外部表

表:Hive中的表和RDBMS中的表概念类似,在Hive中每个表都有一个存储目录。如表htable在HDFS中的路径为:/datewarehouse/htable,其中datewarehouse使在配置文件hive-site.xml指定的数据仓库目录,所有的表都保存在这个目录中。

分区:Hive中每个分区都对应数据库中分区列的一个索引,但是其分区的组织方式和RDBMS不同。在Hive中表的一个分区对应表下的一个目录,所有分区数据存储在对应目录中。如htable有ds和city两个分区,分别对应两个目录,ds=20100301,city=Beijing的子目录为/datewarehouse/htable/ds=20100310/city=Beijing;对应ds=20100310,city=ShangHai的HDFS子目录为/datewarehouse/htable/ds=20100310/city=Shanghai

桶:Hive中的桶对指定列进行Hash计算,会根据Hash值切分数据,使每个桶对应一个文件。如:将熟悉user列分散到32个桶中,要先对user列的值进行hash计算对应hash值为0的桶写入/datewarehouse/htable/ds=20100301/Beijing/part-00000;对应哈希值为10的目录为:/datewarehouse/htable/ds=20100301/city=Beijing/part-00010,依次类推。

外部表:外部表指向已经在HDFS中的数据,外部表和表的主要差异:

    1)创建表的过程分两步:表创建过程和数据加载步骤。在数据加载过程中,实际数据会移动的数据仓库所在的目录中,之后的数据访问会直接在数据仓库目录中完成。在删除表时,表中的数据和元数据会同时删除

    2)外部表的创建只有一个步骤,创建表和加载数据同时完成。实际数据存储在创建语句LOCATION指定的HDFS路径,并不会移动到数据仓库目录中。删除外部表仅删除元数据,表中的数据不会被删除。

Hive的访问接口:

命令行接口,WebUI接口,jdbc接口


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值