栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hive基础

hive基础

Hive:由Facebook开源用于解决海量结构化日志的数据统计。

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。

本质是:将HQL转化成MapReduce程序

1)Hive处理的数据存储在HDFS

2)Hive分析数据底层的实现是MapReduce

3)执行程序运行在Yarn上

Hive的特点:
1.Hive是一种易于对数据实现提取转换加载的工具(ETL数据清洗),可以理解为数据清洗分析
2.它有一种大量格式化数据集强加上结构的机制
3.它可以分析处理直接存储在HDFS中的数据,或者别的和数据存储中的数据例如:Hbase

4.查询的执行是MapReduce完成的
5.Hive可以使用存储过程
6.YARN和Slider实现秒级查询搜索

 架构图

Hive数据存储在HDFS,大部分的查询、计算由mapreduce完成
Hive数据仓库于数据库的异同
 (1)由于Hive采用了SQL的查询语言HQL,因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言,再无类似之处。
(2)数据存储位置。  hdfs   raw local fs
(3)数据格式。 分隔符
(4)数据更新。hive读多写少。Hive中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的。
INSERT INTO … VALUES添加数据,使用UPDATE … SET修改数据  不支持的
HDFS 一次写入多次读取
(5) 执行。hive通过MapReduce来实现的  而数据库通常有自己的执行引擎。
(6)执行延迟。由于没有索引,需要扫描整个表,因此延迟较高。另外一个导致Hive执行延迟高的因素是MapReduce框架
(7)可扩展性
(8)数据规模。
hive几种基本表类型:内部表、外部表、分区表

内部表(管理表)和外部表的区别:
外部表创建表的时候,不会移动数到数据仓库目录中(/user/hive/warehouse),只会记录表数据存放的路径
内部表会把数据复制或剪切到表的目录下
删除表
外部表在删除表的时候只会删除表的元数据信息不会删除表数据
内部表删除时会将元数据信息和表数据同时删除
 

Hive 自定义函数函数

UDF 一进一出 处理原文件内容某些字段包含 [] “”
UDAF 多进一出 sum() avg() max() min()
UDTF 一进多出 ip -> 国家 省 市

order by、sort by、Distribute By、Cluster By的用法区别
①Order By:全局排序,只有一个Reducer
(1)使用 ORDER BY 子句排序
ASC(ascend): 升序(默认)
DESC(descend): 降序
(2)ORDER BY 子句在SELECT语句的结尾
②Sort By:对于大规模的数据集order by的效率非常低。在很多情况下,并不需要全局排序,此时可以使用sort by
③Distribute By:在有些情况下,我们需要控制某个特定行应该到哪个reducer,通常是为了进行后续的聚集操作。distribute by 子句可以做这件事。distribute by类似MR中partition(自定义分区),进行分区,结合sort by使用
④Cluster By:当distribute by和sorts by字段相同时,可以使用cluster by方式。cluster by除了具有distribute by的功能外还兼具sort by的功能。但是排序只能是升序排序,不能指定排序规则为ASC或者DESC
hive的优化
(1)MapJoin:小表在前大表在后,把小表全部读入内存中
(2)行列过滤:过滤空值(根据行列进行过滤)
(3)列式存储:hive的格式
(4)采用分区技术:建分区表
(5)合理设置Map数:过多的map数会造成数据倾斜
(6)合理设置Reduce数:过多的Reduce数会造成文件过多
(7) 压缩:时间换空间,空间换时间
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/674293.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号