![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hive
文章平均质量分 65
拾荒路上的开拓者
开拓,前行!矫情?不存在的……
展开
-
浅谈Hive调优
Hive 作为大数据领域常用的数据仓库组件,在平时设计和查询时要特别注意效率。影响 Hive 效率的几乎从不是数据量过大,而是数据倾斜、数据冗余、Job或I/O过多、MapReduce 分配不合理等等。对Hive 的调优既包含 Hive 的建表设计方面,对HiveHQL 语句本身的优化,也包含 Hive 配置参数 和 底层引擎 MapReduce 方面的调整。1 Hive建表设计调优Hive的建表设计层面调优,主要讲的怎么样合理的组织数据,方便后续的高效计算。比如建表的类型,文件存储格式,是否压缩等原创 2022-03-05 15:25:20 · 707 阅读 · 0 评论 -
什么情况下,hive只会产生一个reduceTask,而没有mapTask
正常逻辑下,mapTask的职责就是负责读数据,做ETL,也可以利用combiner局部聚合;ReduceTask输入严重依赖于mapper输出,所以‘一直’的逻辑仅有reducer无法执行的。hql常规解析后依赖的mapreduce主要还是ExecReducer/ExecMapper--通过实现hadoop的mapper和reducer来实现具体执行逻辑。hive自己的mapreducer有一个实现案例,就是GenericMR,实现源码如下:public final class Generi转载 2022-03-05 09:17:36 · 453 阅读 · 0 评论 -
hive中的order by、distribute by、sort by和cluster by相关区别
order byorder by 会对数据进行全局排序,和oracle和mysql等数据库中的order by 效果一样,它只在一个reduce中进行所以数据量特别大的时候效率非常低。sort bysort by 是单独在各自的reduce中进行排序,所以并不能保证全局有序,一般和distribute by 一起执行,而且distribute by 要写在sort by前面。如果m...原创 2020-03-12 22:46:36 · 244 阅读 · 0 评论 -
快速查看hive库空间方法
在Hive库的日常开发中,一般公司都会将集群环境分为:测试环境、生产环境(可能各公司的叫法不一,但万变不离其宗)。一般情况下,由于节约开支的需要,测试环境的Hive库存储空间可能不会很大,提前获知Hive库剩余空间更有利于提供做准备,避免出现因空间不足导致任务测试失败(大数据任务测试都是比较耗时的),下面提供2种方法可方便查看hive库的空间:方法一:在Lunix界面下输以下命令:h...原创 2019-07-15 20:45:27 · 4730 阅读 · 0 评论 -
Hive内存溢出常见问题
1MR作业运行过程中内存溢出错误分类1.1Mapper/Reducer阶段JVM内存溢出(一般都是堆)1.1.1JVM堆(Heap)内存溢出:堆内存不足时,一般会抛出如下异常:1)-“java.lang.OutOfMemoryError: ” GC overhead limit exceeded; 2)-"Error: Java heapspace"异常信息 3)-"run...原创 2019-04-24 22:48:47 · 4237 阅读 · 0 评论 -
Hive性能优化
1介绍Hadoop的计算框架特性会衍生出哪些问题?数量量大不是问题,数据倾斜是个问题 jobs数比较多的作业运行效率相对比较低,比如即使有几百生的表,如果多次关联多次汇总,产生十几个jobs,耗时很长。原因是MapReduce作业初始化时间是比较长的 sum,count,max,min等UDAF,不怕数据倾斜问题,hadoop在map端的汇总合并优化,使数据倾斜不成问题 count...原创 2019-04-14 13:52:48 · 190 阅读 · 0 评论 -
Hive之collect_list()/collect_set()函数
Hive中collect相关的函数有 collect_list 和 collect_set。它们都是将分组中的某列转为一个数组返回,不同的是 collect_list 不去重而 collect_set 去重。例子:hive中一张测试表 dualcol1 col2A 1B 2A 3B 4C 5A 3hive>select col1, collect_list(...原创 2019-04-10 23:09:31 · 21808 阅读 · 0 评论 -
Hive之find_in_set()函数
集合查找函数: find_in_set语法: find_in_set(string str, string strList)返回值: int说明: 返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0举例:hive> select find_in_set('de','ef,ab,de') from dual;3h...原创 2019-04-10 22:54:05 · 10742 阅读 · 0 评论 -
Hive on Spark调优
hive on spark性能远比hiveonmr要好,而且提供了一样的功能。用户的 SQL 无需修改就可以直接运行于 hive on spark ,udf函数也是全部支持的。本文主要讲的是 hive on spark在运行于 yarn模式的情况下如何调优(下文举例讲解的 yarn节点机器配置,假设有32核,120G内存)1yarn配置yarn.nodemanage...原创 2019-04-10 22:05:40 · 1066 阅读 · 0 评论 -
MSCK命令修复Hive表分区
我们平时通常是通过alter table add partition方式增加Hive的分区的,但有时候会通过HDFS put/cp命令往表目录下拷贝分区目录,如果目录多,需要执行多条alter语句,非常麻烦。Hive提供了一个"Recover Partition"的功能。具体语法如下:MSCK REPAIR TABLE table_name;原理相当简单,执行后,Hive会检测如果...原创 2019-04-04 20:00:58 · 242 阅读 · 0 评论 -
Hive——Order by和Sort by的区别
Order by和Sort by的区别?Order by Order by会引发全局排序,有可能会导致任务失败select * from baidu_click order by click desc;Sort by distribute by + sort by就是该替代方案,被distribute by设定的字段为KEY,数据会被HASH分...原创 2018-10-21 22:20:52 · 322 阅读 · 0 评论