Hive
文章平均质量分 86
大数据中Hive框架学习文章汇总
电光闪烁
一个大数据开发工程师的学习之路
展开
-
Hive文章汇总
Hive相关博文汇总:Hive(1):Hive的基本概念Hive(2):Hive的安装和部署Hive(3):Hive的数据类型Hive(4):Hive的DDL数据定义Hive(5):Hive的DML数据操作Hive(6):Hive查询之基本查询Hive(7):Hive查询之分组查询Hive(8):Hive查询之Join语句Hive(9):Hive查询之排序Hive(10):Hive的分区表和分桶表Hive(11):Hive的函数之内置函数Hive(12):Hive的函数之自定义函原创 2022-05-11 22:32:42 · 488 阅读 · 0 评论 -
Hive(20):Hive的函数之窗口函数
简单理解,就是对查询的结果多出一列,这一列可以是聚合值,也可以是排序值。开窗函数一般就是说的是over()函数,其窗口是由一个 OVER 子句 定义的多行记录开窗函数一般分为两类,聚合开窗函数和排序开窗函数。原创 2022-09-06 15:52:12 · 800 阅读 · 0 评论 -
Hive(19):Hive调优之 Hive On Spark
考虑到系统基础服务和HDFS等组件的余量,一般会将YARN NodeManager的yarn.nodemanager.resource.cpu-vcores参数设为28,也就是YARN能够利用其中的28核,此时将spark.executor.cores设为4最合适,最多可以正好分配给7个Executor而不造成浪费。同理,这两个内存参数相加的总量也不能超过单个Container最多能申请到的内存量,即yarn.scheduler.maximum-allocation-mb配置的值。...原创 2022-08-28 18:45:28 · 605 阅读 · 0 评论 -
Hive(18):Hive调优之Job优化
不过,某个特定的job可能包含众多的阶段,而这些阶段可能并非完全互相依赖的,也就是说有些阶段是可以并行执行的,这样可能使得整个job的执行时间缩短。不幸的是,Hive并不会执行这种优化,因此,如果表足够大,那么这个查询就会出现不可控的情况。当input的文件都很大,任务逻辑复杂,map执行非常慢的时候,可以考虑增加Map数,来使得每个map处理的数据量减少,从而提高任务的执行效率。用户可以通过设置hive.exec.mode.local.auto的值为true,来让Hive在适当的时候自动启动这个优化。..原创 2022-08-28 17:38:27 · 500 阅读 · 0 评论 -
Hive(17):Hive调优之数据倾斜
绝大部分任务都很快完成,只有一个或者少数几个任务执行的很慢甚至最终执行失败,这样的现象为数据倾斜现象。一定要和数据过量导致的现象区分开,数据过量的表现为所有任务都执行的很慢,这个时候只有提高执行资源才可以优化HQL的执行效率。综合来看,导致数据倾斜的原因在于按照Key分组以后,少量的任务负责绝大部分数据的计算,也就是说产生数据倾斜的HQL中一定存在分组操作,那么从HQL的角度,我们可以将数据倾斜分为单表携带了GroupBy字段的查询和两表(或者多表)Join的查询。...原创 2022-08-28 17:22:25 · 319 阅读 · 0 评论 -
Hive(16):Hive调优之HQL语法优化
MapJoin 是将 Join 双方比较小的表直接分发到各个 Map 进程的内存中,在 Map 进程中进行 Join 操 作,这样就不用进行 Reduce 步骤,从而提高了速度。在 Hive 1.1.0 之后,这个 feature 是默认开启的,它可以 自动优化 HQL中多个 Join 的顺序,并选择合适的 Join 算法。MapJoin 是将 Join 双方比较小的表直接分发到各个 Map 进程的内存中,在 Map 进程中进行 Join 操作,这样就不用进行 Reduce 步骤,从而提高了速度。...原创 2022-08-28 13:04:46 · 564 阅读 · 1 评论 -
Hive(15):Hive调优之建表优化
关系型数据库中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中,Hive中也提供了类似的机制,即动态分区(Dynamic Partition),只不过,使用Hive的动态分区,需要进行相应的配置。查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。每个字段的数据类型一定是相同的,列式存储可以针对性的设计更好的设计压缩算法。...原创 2022-08-28 12:47:38 · 608 阅读 · 0 评论 -
Hive(14):Hive调优之Explain查看执行计划
其他Hive相关系列文章链接由此进 ->添加关键词 extended。1)没有生成MR任务的。2)有生成MR任务的。原创 2022-08-26 17:00:52 · 507 阅读 · 0 评论 -
Hive(13):Hive的压缩和存储
从上述查看表中数据大小中可以很明显得出结论: ORC > Parquet > textFile在实际的项目开发当中,hive表的数据存储格式一般选择:orc或parquet。压缩方式一般选择snappy,lzo。注:其他Hive相关系列文章链接由此进 ->Hive文章汇总。...原创 2022-08-25 22:16:24 · 524 阅读 · 0 评论 -
Hive(12):Hive的函数之自定义函数
1)Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。2)当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)。UDF(User-Defined-Function) : 一进一出UDAF(User-Defined Aggregation Function):聚集函数,多进一出 类似于:count/max/min。原创 2022-08-23 23:28:34 · 515 阅读 · 0 评论 -
Hive(11):Hive的函数之内置函数
NVL:给值为NULL的数据赋值,它的格式是NVL( value,default_value)。它的功能是如果value为NULL,则NVL函数返回default_value的值,否则返回value的值,如果两个参数都为NULL ,则返回NULL。解释:用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。NTILE(n):把有序窗口的行分发到指定数据的组中,各个组有编号,编号从1开始,对于每一行,NTILE返回此行所属的组的编号。原创 2022-08-23 21:46:19 · 291 阅读 · 0 评论 -
Hive(10):Hive的分区表和分桶表
分区针对的是数据的存储路径;关系型数据库中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中,Hive中也提供了类似的机制,即动态分区(Dynamic Partition),只不过,使用Hive的动态分区,需要进行相应的配置。2)设置为非严格模式(动态分区的模式,默认strict,表示必须指定至少一个分区为静态分区,nonstrict模式表示允许所有的分区字段都可以使用动态分区。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。原创 2022-08-23 21:15:42 · 605 阅读 · 0 评论 -
Hive(9):Hive查询之排序
Order By:全局排序,只有一个Reducer。4)将查询结果导入到文件中(按照部门编号降序排序)例:先按照部门编号分区,再按照员工编号降序排序。其他Hive相关系列文章链接由此进 ->3)根据部门编号降序查看员工信息。2)查看设置reduce个数。例:按照员工薪水的2倍排序。例:按照部门和工资升序排序。1)设置reduce个数。例:以下两种写法等价。...原创 2022-08-18 23:16:29 · 904 阅读 · 0 评论 -
Hive(8):Hive查询之Join语句
本例中会首先启动一个MapReduce job对表e和表d进行连接操作,然后会再启动一个MapReduce job将第一个MapReduce job的输出和表l;满外连接:将会返回所有表中符合WHERE语句条件的所有记录。优化:当对3个或者更多表进行join连接时,如果每个on子句都使用相同的连接键的话,那么只会产生一个MapReduce job。注意:连接 n个表,至少需要n-1个连接条件。例如:连接三个表,至少需要两个连接条件。内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来。.原创 2022-08-18 21:23:09 · 223 阅读 · 0 评论 -
Hive(7):Hive查询之分组查询
GROUP BY语句通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作。1)where后面不能写分组函数,而having后面可以使用分组函数。2)having只用于group by分组统计语句。2)计算emp每个部门中每个岗位的最高薪水。2)求每个部门的平均薪水大于2000的部门。其他Hive相关系列文章链接由此进 ->1)计算emp表每个部门的平均工资。1)求每个部门的平均工资。...原创 2022-08-18 21:01:11 · 1281 阅读 · 0 评论 -
Hive(6):Hive查询之基本查询
B是一个SQL下的简单正则表达式,也叫通配符模式,如果A与其匹配的话,则返回TRUE;反之返回FALSE。B的表达式说明如下:‘x%’表示A必须以字母‘x’开头,‘%x’表示A必须以字母’x’结尾,而‘%x%’表示A包含有字母’x’,可以位于开头,结尾或者字符串中间。如果A小于等于B,则返回TRUE,反之返回FALSE。如果A不等于B,则返回TRUE,反之返回FALSE。如果A和B都为NULL,则返回TRUE,如果一边为NULL,返回False。如果A等于NULL,则返回TRUE,反之返回FALSE。...原创 2022-08-12 21:42:42 · 792 阅读 · 0 评论 -
Hive(5):Hive的DML数据操作
目录0. 相关文章链接1. 数据导入1.1. 向表中装载数据(Load)1.1.1. 语法1.1.2. 实操案例1.2. 通过查询语句向表中插入数据(Insert)1.3. 查询语句中创建表并加载数据(As Select)1.4. 创建表时通过Location指定加载数据路径1.5. Import数据到指定Hive表中2. 数据导出2.1. Insert导出2.2. Hadoop命令导出到本地2.3. Hive Shell 命令导出2.4. Export导出到HDFS上2.5. 清除表中数据(Truncat原创 2022-06-23 22:28:13 · 203 阅读 · 0 评论 -
Hive(4):Hive的DDL数据定义
目录0. 相关文章链接1. 创建数据库2.查询数据库2.1. 显示数据库2.2.查看数据库详情2.3.切换当前数据库3.修改数据库4.删除数据库5.创建表5.1.管理表5.2.外部表5.3.管理表与外部表的互相转换6.修改表6.1. 重命名表6.2. 增加和删除表分区6.3.增加/修改/替换列信息6.3.1. 语法6.3.2. 实操案例7. 删除表0. 相关文章链接Hive文章汇总1. 创建数据...原创 2022-05-16 23:24:35 · 369 阅读 · 0 评论 -
Hive(3):Hive的数据类型
目录0. 相关文章链接1. 基本数据类型2.集合数据类型3.类型转化3.1.隐式类型转换规则如下3.2.可以使用CAST操作显示进行数据类型转换0. 相关文章链接Hive文章汇总1. 基本数据类型Hive数据类型 Java数据类型 长度 例子 TINYINT byte 1byte有符号整数 20 SMALINT short 2byte有符号整数 20 INT int 4byte有...原创 2022-05-11 22:22:38 · 605 阅读 · 0 评论 -
Hive(2):Hive的安装和部署
关于Apache Hive的安装和部署可以参考博主的另一篇博文:Apache Hive 3.x 版本的配置和部署https://yangshibiao.blog.csdn.net/article/details/123835330关于Apache Hive中集成Tez执行引擎可以参考博主的另一篇博文:Apache Hive 3.x 版本中集成Tez执行引擎https://yangshibiao.blog.csdn.net/article/details/123898406注:其他Hive相关系列原创 2022-05-11 22:30:00 · 305 阅读 · 0 评论 -
Hive(1):Hive的基本概念
目录0. 相关文章链接1. 什么是Hive2. Hive的优缺点2.1. 优点2.2.缺点3.Hive架构原理4. Hive运行机制5.Hive和数据库比较5.1.查询语言5.2.数据更新5.3.执行延迟5.4.数据规模0. 相关文章链接Hive文章汇总1. 什么是Hive1) hive简介Hive:由Facebook开源用于解决海量结构化日志的数据统计工具。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化...原创 2022-05-10 23:13:59 · 308 阅读 · 0 评论