暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式数据仓库架构基石-hive基础介绍

IT那活儿 2024-06-24
114

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!  


Hive简介
Hive由Facebook开源用于解决海量结构化日志的数据统计。
  • Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。

Hive本质:

将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数据仓库于数据库的异同

2.1 语言vs结构
由于Hive采用了SQL的查询语言HQL,因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言,再无类似之处。
2.2 数据存储位置
 hdfs   raw local fs
2.3 数据格式
分隔符。
2.4 数据更新
hive读多写少。Hive中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的。
2.5 执行
hive通过MapReduce来实现的,而数据库通常有自己的执行引擎。
2.6 执行延迟
由于没有索引,需要扫描整个表,因此延迟较高。另外一个导致Hive执行延迟高的因素是MapReduce框架。
2.7 可扩展性

架构图:

Hive数据存储在HDFS,大部分的查询、计算由mapreduce完成

Hive表类型

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


Hive 自定义函数函数

  • UDF 一进一出,处理原文件内容某些字段包含 [] “”
  • UDAF 多进一出,sum() avg() max() min()
  • UDTF 一进多出,ip -> 国家 省 市
order by、sort by、Distribute By、Cluster By的用法区别:
1)Order By
全局排序,只有一个Reducer。
  • 使用 ORDER BY 子句排序
    ASC(ascend): 升序(默认);
    DESC(descend): 降序。
  • ORDER BY 子句在SELECT语句的结尾
2)Sort By
对于大规模的数据集order by的效率非常低。在很多情况下,并不需要全局排序,此时可以使用sort by。
3)Distribute By
在有些情况下,我们需要控制某个特定行应该到哪个reducer,通常是为了进行后续的聚集操作。
distribute by 子句可以做这件事。distribute by类似MR中partition(自定义分区),进行分区,结合sort by使用。
4)Cluster By

当distribute by和sorts by字段相同时,可以使用cluster by方式。cluster by除了具有distribute by的功能外还兼具sort by的功能。但是排序只能是升序排序,不能指定排序规则为ASC或者DESC。


Hive的优化

  • MapJoin

    小表在前大表在后,把小表全部读入内存中。

  • 行列过滤

    过滤空值(根据行列进行过滤)。

  • 列式存储

    hive的格式。

  • 采用分区技术

    建分区表。

  • 合理设置Map数

    过多的map数会造成数据倾斜。

  • 合理设置Reduce数

    过多的Reduce数会造成文件过多。

  • 压缩

    时间换空间,空间换时间。

总 结:

Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。


END


本文作者:王佳琛(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论