
hive
文章平均质量分 75
阿宁呀
大数据,数据挖掘。
展开
-
【大数据之Hive】十五、Hive-HQL函数之炸裂函数UDTF
制表函数,接收一行数据,输出一行或多行数据。原创 2023-06-22 13:30:00 · 243 阅读 · 0 评论 -
【大数据之Hive】十四、Hive-HQL函数之炸裂函数和窗口函数
将一行数据拆分多行,即制表函数,接收一行数据,输出一行或多行数据。原创 2023-06-21 15:15:00 · 1012 阅读 · 0 评论 -
【大数据之Hive】二十七、HQL之Fetch抓取、本地模式、并行执行、严格模式
Fetch抓取是指Hive中对某些情况的查询可以不必使用MapReduce计算。例如:select * from emp;在这种情况下,Hive可以简单地读取emp对应的存储目录下的文件,然后输出查询结果到控制台。原创 2023-07-21 11:30:00 · 625 阅读 · 0 评论 -
【大数据之Hive】二十六、HQL之CBO优化、谓词下推、矢量化查询
CBO是指Cost based Optimizer,即基于计算成本的优化。在Hive中,计算成本模型考虑到了:数据的行数、CPU、本地IO、HDFS IO、网络IO等方面。Hive会计算同一SQL语句的不同执行计划的计算成本,并选出成本最低的执行计划。目前CBO在hive的MR引擎下主要用于join的优化,例如多表join的join顺序。1、示例SQL语句2、关闭CBO优化根据执行计划,三张表的join顺序如下:3、开启CBO优化根据执行计划,三张表的join顺序如下:4、总结。原创 2023-07-20 13:15:00 · 1417 阅读 · 0 评论 -
【大数据之Hive】二十五、HQL语法优化之小文件合并
小文件优化可以从两个方面解决,在Map端输入的小文件合并,在Reduce端输出的小文件合并。原创 2023-07-19 18:45:00 · 1590 阅读 · 0 评论 -
【大数据之Hive】二十四、HQL语法优化之任务并行度
Hive的计算任务由MapReduce完成,并行度调整分为Map端和Reduce端。原创 2023-07-18 11:25:21 · 760 阅读 · 0 评论 -
【大数据之Hive】二十三、HQL语法优化之数据倾斜
Map-site优化优于Skew-GroupBy优化,能做Map-site聚合就做Map-site聚合。Map-site聚合要在Map端维护一个HashTable,HashTable消耗了内存,即内存不充足的情况下尽量不做Map-site聚合,但也可以做,当HashTable超过设定的内存阈值时,会flush刷新。当内存很小时会flush很多次导致map端聚合没有解决数据倾斜问题,此时可以用Skew-GroupBy聚合。也就是不管内存足部足够都能把数据打散再做聚合。原创 2023-07-14 21:15:00 · 726 阅读 · 0 评论 -
【大数据之Hive】二十二、HQL语法优化之Join优化
Map Join算法可以通过两个只有map阶段的Job完成一个join操作。适用于大表join小表。第一个Job会读取小表数据,将其制作为hash table,并上传至Hadoop分布式缓存(本质上是上传至HDFS)。第二个Job会先从分布式缓存中读取小表数据,并缓存在Map Task的内存中,然后扫描大表数据,在map端即可完成关联操作。Bucket Map Join是对Map Join算法的改进,其打破了Map Join只适用于大表join小表的限制,可用于大表join大表的场景。原创 2023-07-13 20:45:00 · 628 阅读 · 0 评论 -
【大数据之Hive】二十一、HQL语法优化之分组聚合优化
在Hive中没有优化过的分组聚合:通过MR任务实现。Map端负责读数据,按分区字段分区,通过Shuffle,将数据发往Reduce端,各组数据在Reduce端完成最终的聚合运算。Hive分组聚合优化主要针对减少Shuffle的数据量,使用map-site聚合,在map端维护一个hash table,对数据进行聚合,聚合结果按分组字段分区发送到reduce端。原创 2023-07-12 11:50:16 · 505 阅读 · 0 评论 -
【大数据之Hive】二十、Hive之调优相关配置及Explain查看执行计划
执行计划简单来说就是一个SQL语句最终翻译成多少个MapReduce,Map里做了什么,Reduce里做了什么。Explain显示的执行计划,由一系列Stage(整个执行计划的一个阶段,一条SQL语句会把整个阶段分为若干个执行计划)组成,Stage具有依赖关系,每个Stage对应一个MapReduce Job,或者一个文件系统操作等。原创 2023-07-05 18:15:00 · 518 阅读 · 0 评论 -
【大数据之Hive】十九、Hive之文件格式和压缩
ORC是列式存储的文件格式,可以提高hive读写数据和处理数据的性能。左边为逻辑表。右边第一个为行式存储:取文件的一行数据存储到相邻的位置;第二个为列式存储:取文件的一列数据存储到相邻的位置。查询满足条件的一整行数据的时候,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。列式存储查找一行数据时需要去每个字段中找对应的每个列的值。因为每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量;原创 2023-07-04 22:45:00 · 1416 阅读 · 0 评论 -
【大数据之Hive】十八、Hive之分区表和分桶表
Hive的分区指把大表按需求分散存储到多个目录,每个目录称为该表的一个分区,使用where查询所需的分区。原创 2023-06-28 22:45:00 · 396 阅读 · 0 评论 -
【大数据之Hive】十七、Hive-HQL函数之自定义函数
当Hive提供的内置函数无法满足业务处理需求时,可以通过自定义UDF函数来扩展。用户自定义函数类别:(1)UDF(User-Defined-Function):一进一出。(2)UDAF(User-Defined Aggregation Function):用户自定义聚合函数,多进一出。类似于:count/max/min(3)UDTF(User-Defined Table-Generating Functions):用户自定义表生成函数,一进多出。如lateral view explode()原创 2023-06-27 12:45:00 · 332 阅读 · 0 评论 -
【大数据之Hive】十六、Hive-HQL函数之窗口函数(开窗函数)
先定义了窗口的大小(按行来算),然后对窗口内的行的数据进行计算,再将计算结果返回给改行。 窗口函数包括窗口和函数两部分,窗口用于定义计算范围,函数用于定义计算逻辑,窗口函数只会在原来的表上增加一列结果列,不改变原来的数据。函数: 绝大多数聚合函数都可以配合窗口使用,如max(),min(),sum(),count(),avg()等。窗口: 分为两种,一种是基于行的,一种是基于值的。 基于行的:如每行数据的窗口为上一行到当前行:对于第1行来说,处于窗口内的行为第0行和第1行;对于第2行原创 2023-06-26 17:57:38 · 2736 阅读 · 1 评论 -
【大数据之Hive】十三、Hive-HQL函数之单行函数和高级聚合函数
多进一出,即多行输入,一行输出。-- 普通聚合-- collect_list() :收集并形成list集合,结果不去重。-- collect_set() :收集并形成set集合,结果去重。原创 2023-06-20 21:11:11 · 1189 阅读 · 0 评论 -
【大数据之Hive】十二、Hive-HQL查询之分组、join、排序
group by 通常和聚合函数一起使用,按照一个或多个列的结果进行分组,任何对每个租执行聚合操作。用group by时,select中只能用在group by中的字段和聚合函数。原创 2023-06-15 22:15:00 · 1974 阅读 · 0 评论 -
【大数据之Hive】十一、Hive-HQL查询之基本查询
sql语句翻译成MapReduce的执行计划,在Map端读入数据,在每个Map端上对读入的数据进行聚合,就减少了shuffle的数据量,然后将每个Map聚合之后的结果汇总到一个Reduce中,在Reduce上进行统计。用where过滤不满足条件的行,只针对一行一行的数据,在from句后,且where句子不能用字段别名。对于模糊匹配like:用show查tables用通配符*,用select查表数据用通配符%。查询返回多行数据,用limit限制返回的行数。(2)SQL 可以写在一行或者多行。原创 2023-06-13 22:45:00 · 505 阅读 · 0 评论 -
【大数据之Hive】十、Hive之DML(Data Manipulation Language)数据操作语言
将文件导入Hive表中。关键字说明:(1)local:表示从本地加载数据到Hive表;否则从HDFS加载数据到HIve表。(2)overwrite:表示覆盖表中已有数据,否则表示追加。(3)partition:表示上传到指定分区,若目标是分区表则需要指定分区。原创 2023-06-12 18:12:16 · 966 阅读 · 0 评论 -
【大数据之Hive】九、Hive之DDL(Data Definition Language)数据定义语言
] 里的都是可选的操作。原创 2023-06-09 21:30:00 · 1148 阅读 · 1 评论 -
【大数据之Hive】八、Hive常用交互命令及参数配置
因为Hive是作为Hadoop的客户端启动的,所以Hive也会读入Hadoop的配置,Hive的配置会覆盖Hadoop的配置。原创 2023-06-07 16:45:00 · 1015 阅读 · 0 评论 -
【大数据之Hive】七、 Hive服务启动脚本
先在$HIVE_HOME目录下创建一个logs文件夹,该文件夹下再创建两个文件:metastore.log和hiveServer2.log。在/home/用户名/bin下创建一个脚本:hiveservices.sh。然后将其复制到$HIVE_HOME/bin/下。原创 2023-06-06 08:00:00 · 518 阅读 · 0 评论 -
【大数据之Hive】六、Hive之metastore服务部署
metastore为Hive CLI或Hiveserver2提供元数据访问接口。原创 2023-06-05 18:25:57 · 2530 阅读 · 0 评论 -
【大数据之Hive】五、Hiveserver2服务部署
hiveserver2提供JDBC/ODBC接口,使得用户可以远程访问Hive数据,即作为客户端的代理与Hadoop集群进行交互。hiveserver2部署时需要部署到一个能访问集群的节点上,保证能够直接往Hadoop上提交数据。用户在客户端提交SQL语句时,由hiveserver请求HDFS或者提交计算任务到Yarn上,再由hiveserver2将结果返回给客户端。用户即由hiveserver2代理进行远程访问Hadoop集群的用户。原创 2023-05-31 17:45:00 · 2812 阅读 · 0 评论 -
【大数据之Hive】四、配置Hive元数据存储到MySQL
需求:把Hive元数据写道MySQL的metastore数据库中(MySQL默认没有metastore数据库,需要提前创建:create database metastore;连接地址:jdbc:mysql//hadoop102:3306/metastore驱动:com.mysql.cj.jdbc.Driver用户名:root密码:123456。原创 2023-05-30 13:45:00 · 1723 阅读 · 0 评论 -
【大数据之Hive】三、Linux下安装MySQL8.0.33
解决方法:用yum直接下载。原创 2023-05-29 20:09:25 · 2027 阅读 · 1 评论 -
【大数据之Hive】二、Hive安装
(9)先退出hive客户端,在hive根目录下删除derby.log和metastore_db,以及删除HDFS上的hive目录。Hive默认使用的元数据库为derby,derby数据库在同一时间只能一个客户访问,如果多个hive客户端同时访问会报错。企业开发中需要多客户访问hive,所以把hive元数据用MYSQL存储,MYSQL支持多客户端同时访问。安装部署Hive(最小化只用于本机测试环境中,不可用于生产环境),并运行。Hive把元数据库metastore_db保存在hive的根目录下。原创 2023-05-25 17:30:00 · 901 阅读 · 0 评论 -
【大数据之Hive】一、Hive概念及框架原理
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能,主要完成海量数据的分析和计算。优点:简化数据开发流程及提高了效率。原创 2023-05-24 11:30:00 · 933 阅读 · 0 评论