Hive的总结

来源:互联网 发布:淘宝网网页版登陆入口 编辑:程序博客网 时间:2024/05/03 05:09

1、HIve的数据模型

2、Hive的基本安装

3、Hive的shell使用以及HQL的使用

4、Hive的优化

5、其它方式访问Hive表中的数据的形式

1、HIve的数据模型:

表(Table) 外部表(External Table)分区(Partition)桶(Buckets)

表(Table)主要包括元数据以及实际的数据,一般元数据主要存储在关系型的数据库中,而实际的数据一般存放在HDFS创建的/usr/hive/warehouse这个目录下。在删除表的时候,元数据和目标数据都删除。

外部表(EXternal Table)元数据存放在关系型的数据库中,实际数据存放在绝对位置,不需要将数据移动到/usr/hive/warehouse这个目录下的表目录下。在删除表的时候,元数据删除,目标数据不删除。

分区:主要是为了加快查找的速度,一般需要人为的设定分区的字段,以及查询时,人工填写要查找的分区。

桶:主要是将一个文件按照key的hash分配到不同的桶中,加快查找,同时也有主要样本的抽样,减少执行的时间。

2、Hive的基本安装(可以按照前面的博客)

(1)首先安装Hadoop的hdfs

(2)需要安装,mysql

3、Hive的shell使用以及HQL的使用

我们可以使用Hive shell 进行数据的访问

DDl DMLQuery

DDL :主要包括 create alter,drop等对于表的创建

create  table 表明(列名  数据类型)partition by()clustered  by()sorted by()row format delitimited field terminated by '\t'

drop table 表名

alter  table 表名add ***

create table 表名 like 

create table 表名 select * from 表名;

DML:几个常用的语句

Load Data Local INPATH ‘/user/path/***’ into table 表明

Insert OVERWRITE table 表名 select * from 表名

insert overwrite directory ‘地址’ select * from表名

insert overwrite local directory ‘地址 ’select * from 表名

Query(查询)

主要使用的就是select 语法跟sql 的差不多。

4、Hive的优化

1、我们可以将table表的数据的存储格式用RCFile存储,这种存储比textFile,SequenceFile高效。

2、合理的使用分区和桶,加在查找的速度

3、保证数据集均匀分布在集群中

4、优化我们的sql语句,保证执行的效率

扩展:

前面几篇博客主要讲解的是使用RCFile进行文件的保存。

(1)了解RCFile 文件的具体格式

(2)如何将Hive的文件转化为RCFile文件的格式(很简单)

       (1) 将文件导入到hive表中

         (2)在将这张表中的数据插入到另外一张表中。这个新的这张表就是RCFIle文件的格式

(3)压缩算法(GZIP,SNAPPY,LZO)一般在Hive shell中通过set设置

       HIve将文件保存为RCFile文件形式时,在使用压缩算法,减少文件的存储空间。

(4)MapReduce并没与提供RCFIle的形式

       通过MapReduce将文件转化为RCFile形式,并读取RCFIle文件

5、其它方式访问Hive表中的数据的形式

我们可以使用JDBC的方式,访问Hive中的数据。


0 0
原创粉丝点击