![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hive
文章平均质量分 73
莫叫石榴姐
云淡风轻一轮江月明
展开
-
Hive任务执行报错:FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
Hive任务执行报错:FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask原创 2022-06-29 16:27:48 · 7176 阅读 · 2 评论 -
hive msck repair table 报错return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
hive msck repair table 报错return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask转载 2022-06-23 11:54:34 · 2582 阅读 · 1 评论 -
HiveSQL一天一个小技巧:使用TextFile格式可以直接使用gzip或bzip2压缩
数据压缩存储可以将使用Gzip或Bzip2压缩的文本文件直接导入存储为TextFile的表中。压缩将被自动检测到,并且文件将在查询执行期间实时解压缩. 例如: CREATE TABLE raw (line STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'; LOAD DATA LOCAL INPATH '/tmp/weblogs/20090603-acc...原创 2021-11-29 11:00:38 · 2653 阅读 · 0 评论 -
如何设置ReduceTask并行度
如果 ReduceTask 数量过多,一个 ReduceTask 会产生一个结果文件,这样就会生成很多小文件,那么如果这些结果文件会作为下一个 Job 的输入,则会出现小文件需要进行合并的问题,而且启动和初始化ReduceTask 需要耗费资源。如果 ReduceTask 数量过少,这样一个 ReduceTask 就需要处理大量的数据,并且还有可能会出现数据倾斜的问题,使得整个查询耗时长。默认情况下,Hive 分配的 reducer 个数由下列参数决定:Hadoop MapReduce 程序中,Re原创 2021-09-08 15:43:46 · 653 阅读 · 1 评论 -
MR中如何控制map的数量
hadooop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数。但是通过这种方式设置map的个数,并不是每次都有效的。原因是mapred.map.tasks只是一个hadoop的参考数值,最终map的个数,还取决于其他的因素。为了方便介绍,先来看几个名词:block_size : hdfs的文件块大小,默认为128M,可以通过参数dfs.block.size设置 total_size : 输入文件整体的大小 input_file_num :原创 2021-09-08 15:07:28 · 1223 阅读 · 0 评论 -
SQL一天一个小技巧:如何通过HQL解析JSON
在Hive中会有很多数据是用Json格式来存储的,如开发人员对APP上的页面进行埋点时,会将多个字段存放在一个json数组中,因此数据平台调用数据时,要对埋点数据进行解析。接下来就聊聊Hive中是如何解析json数据的。Hive自带的json解析函数1. get_json_object 语法:get_json_object(json_string, '$.key') 说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NUL转载 2021-09-02 18:42:33 · 2864 阅读 · 0 评论 -
你真的了解HiveSql吗?真实的HiveSql执行顺序是长这样的
通过上面的研究我们发现在hivesql中其执行顺序大致如下:from->where(谓词下推)->join->on->select(select中的字段与group by只要不一致就会有)->group by->select(为having准备数据,因而having中可以使用select别名)->having->select(过滤后的结果集)->distinct->select->order by ->select->limit实际上上述需要注意的是select在group by前和group by原创 2021-09-01 19:31:24 · 2026 阅读 · 1 评论 -
一个HQL语句是如何转换成MR任务的?
1 具体核心流程图介绍2 详情分析(1)HQL的执行形式1)$HIVE_HOME/bin/hive 进入客户端,然后执行 HQL; 2)$HIVE_HOME/bin/hive -e “hql”; 3)$HIVE_HOME/bin/hive -f hive.sql; 4)先开启 hivesever2 服务端,然后通过 JDBC 方式连接远程提交 HQL。可 以 知 道 我 们 执 行 HQL 主 要 依 赖 于 $HIVE_HOME/bin/hive 和 $HIVE_HOME...原创 2021-08-22 16:17:58 · 1306 阅读 · 0 评论 -
Hive客户端JDBC操作
Hive客户端JDBC操作1.1 启动hiveserver2 node03执行以下命令启动hiveserver2的服务端 cd /kkb/install/hive-1.1.0-cdh5.14.2/nohup bin/hive --service hiveserver2 2>&1 &1.2 引入依赖 创建maven工程,引入依赖 <repositories> <repository> &l原创 2021-08-19 14:12:41 · 347 阅读 · 0 评论 -
Hive数据导入导出
目录1 Hive数据导入1.1 直接向表中插入数据(强烈不推荐使用)1.2 通过load加载数据(必须掌握)1.3 通过查询加载数据(必须掌握)1.4 查询语句中创建表并加载数据(as select)1.5 创建表时指定location1.6 export导出与import 导入 hive表数据(内部表操作)2. Hive数据导出2.1 insert 导出2.2 Hive Shell 命令导出2.3 export导出到HDFS上1 Hive数据导入1.1原创 2021-08-19 14:03:22 · 570 阅读 · 0 评论 -
通俗易懂的Hive join几种形式原理详解
表的Join是数据分析处理过程中必不可少的操作,Hive同样支持Join的语法,Hive Join的底层还是通过MapReduce来实现的,Hive实现Join时,为了提高MapReduce的性能,提供了多种Join方案来实现,例如适合小表Join大表的Map Join,大表Join大表的Reduce Join,以及大表Join的优化方案Bucket Join等。1 Map Join应用场景适合于小表join大表或者小表Join小表原理将小的那份数据给每个MapTask的内存都放一.原创 2021-07-26 22:08:24 · 3910 阅读 · 3 评论 -
Hive多维统计分析案例实战
目录0 需求描述1 数据结构2 准备工作2.1 准备表2.2 安装TEZ计算引擎3 业务分析3.1 统计视频观看数Top103.2 统计视频类别热度Top103.3 统计出视频观看数最高的20个视频的所属类别以及类别包含Top20视频的个数3.4 统计视频观看数Top50所关联视频的所属类别排序3.5 统计每个类别中的视频热度Top10,以Music为例3.6 统计每个类别视频观看数Top103.7 统计上传视频最多的用户Top10以及他们上传的视频观看次原创 2020-12-06 21:45:22 · 4076 阅读 · 0 评论 -
窗口函数之cume_dist 函数讲解
cume_dist 如果按升序排列,则统计:小于等于当前值的行数/总行数(number of rows ≤ current row)/(total number of rows)。如果是降序排列,则统计:大于等于当前值的行数/总行数。示例:1. 统计小于等于当前工资的人数占总人数的比例。SELECT name, dept_no, salary, cume_dist() OVER (ORDER BY salary) as cume_distF.原创 2021-05-09 21:32:25 · 7257 阅读 · 2 评论 -
Hive on HBase表字段数超过默认限制,select查询报错
0 报错内容建表可以成功,查询映射表的时候报错。具体如下:1 原因分析根本原因:hive on hbase 中默认限制字段的字符数是4000对于4000个字符,hive Metastore中SERDE_PARAMS表中PARAM_VALUE字段的字符限制是此问题的根本原因。此限制可防止Hive创建具有高列数的表,最终导致desc或select * from失败并出现上述错误。2 解决方法解决方法:通过在hive Metastore中执行以下操作可以解决此问题alter .原创 2021-07-05 16:02:55 · 1012 阅读 · 0 评论 -
Hive sql 常见数据倾斜(类型不匹配、复杂join条件)的分析解决
本篇以hive sql解析器来讨论问题,spark sql 的处理方法类似,大家可自行测试。本篇不分析各种会造成数据倾斜的原因,数据倾斜形成的原因也只是简单提及。本篇主要分析在sql中进行join操作时,会造成数据倾斜的常见两大原因,以及解决方法。我认为这两种情况,在工作中出现的几率较高,所以单独拿出来讨论。数据倾斜造成的原因(懂的可以跳过不看):这个问题简单来说,就是分布式处理中,每个节点处理的数据量差距较大,而导致单节点负担过重,处理时间过长,而拖慢整个作业的执行时间。在hive中,常见的处转载 2021-06-10 16:37:18 · 1082 阅读 · 1 评论 -
Hive存储优化策略
1 避免小文件生成Hive的存储本质还是HDFS,HDFS是不利于小文件存储的,因为每个小文件会产生一条元数据信息,并且不利用MapReduce的处理,MapReduce中每个小文件会启动一个MapTask计算处理,导致资源的浪费,所以在使用Hive进行处理分析时,要尽量避免小文件的生成。那么在使用Hive时,如何能避免小文件的生成呢?当我们使用多个Reduce进行聚合计算时,我们并不清楚每个Reduce最终会生成的结果的数据大小,无法控制用几个Reduce来处理。Hive中为我们提供了一个特殊的机原创 2021-05-30 20:31:21 · 488 阅读 · 6 评论 -
Spark读取hive表数据并将处理的数据写入HBase
package com.nbdpt.work4_hive2hbase2019import com.nbdpt.util.BaseUtilimport org.apache.hadoop.hbase.client.{ConnectionFactory, Get, Put}import org.apache.hadoop.hbase.io.ImmutableBytesWritableimport org.apache.hadoop.hbase.mapreduce.TableOutputFormat.原创 2021-04-25 15:33:13 · 1137 阅读 · 0 评论 -
Hive调优利器之explain详解
0 引言不懂hive中的explain,说明hive还没入门,学会explain,能够给我们工作中使用hive带来极大的便利!1 理论本节将介绍 explain 的用法及参数介绍HIVE提供了EXPLAIN命令来展示一个查询的执行计划,这个执行计划对于我们了解底层原理,hive 调优,排查数据倾斜等很有帮助使用语法如下:EXPLAIN[EXTENDED|CBO|AST|DEPENDENCY|AUTHORIZATION|LOCKS|VECTORIZATION|ANALYZE]..原创 2021-04-23 11:02:10 · 5557 阅读 · 4 评论 -
HiveSql工作中常见易错点总结
0 前言在进行数仓搭建和数据分析时最常用的就是 sql,其语法简洁明了,易于理解,目前大数据领域的几大主流框架全部都支持sql语法,包括 hive,spark,flink等,所以sql在大数据领域有着不可替代的作用,需要我们重点掌握。在使用sql时如果不熟悉或不仔细,那么在进行查询分析时极容易出错,接下来我们就来看下几个容易出错的sql语句及使用注意事项。1. decimalhive 除了支持 int,double,string等常用类型,也支持 decimal 类型,用于在数据库中存储精确原创 2021-04-23 10:10:40 · 1174 阅读 · 1 评论 -
Hive with语句你所不知道的秘密
0 引言 公用表表达式(CTE)是从WITH子句中指定的简单查询派生的临时结果集(会把查询的表数据放到内存中,供其他查询随时使用),该子句紧跟在SELECT或INSERT关键字之前。CTE仅在单个语句的执行范围内定义。可以在HiveSELECT,INSERT,CREATE TABLE AS SELECT或CREATE VIEW AS SELECT语句中使用一个或多个CTE。 with as 也叫做子查询部分,首先定义一个sql片段,该sql片段会被整个sql语句所用到,为了让sql语句.......原创 2021-04-07 11:43:10 · 5366 阅读 · 0 评论 -
Beeline – 命令行参数详解
Beeline Shell 在嵌入式模式和远程模式下均可工作。在嵌入式模式下,它运行嵌入式 Hive(类似于Hive CLI),而远程模式用于通过 Thrift 连接到单独的 HiveServer2 进程。从Hive 0.14开始,当 Beeline 与 HiveServer2 一起使用时,它还会打印 HiveServer2 的日志消息,以查询执行到 STDERR 的查询。建议将远程 HiveServer2 模式用于生产环境,因为它更安全并且不需要为用户授予直接 HDFS /元存储访问权限。Warnin原创 2021-04-01 18:15:08 · 9932 阅读 · 0 评论 -
一种基于滑动平均的时间序列滤波方法(Java实现)
1 滑动平均的认识 移动平均法是用一组最近的实际数据值来预测未来一期或几期内公司产品的需求量、公司产能等的一种常用方法。移动平均法适用于即期预测。当产品需求既不快速增长也不快速下降,且不存在季节性因素时,移动平均法能有效地消除预测中的随机波动,是非常有用的。移动平均法根据预测时使用的各元素的权重不同 移动平均法是一种简单平滑预测技术,它的基本思想是:根据时间序列资料、逐项推移,依次计算包含一定项数的序时平均值,以反映长期趋势的方法。因此,当时间序列的数值由于受周期变动和随机波动的影响,起伏较大.原创 2021-03-12 17:52:18 · 1054 阅读 · 0 评论 -
SQL 窗口函数的优化和执行
窗口函数(Window Function)是 SQL2003 标准中定义的一项新特性,并在 SQL2011、SQL2016 中又加以完善,添加了若干处拓展。窗口函数不同于我们熟悉的普通函数和聚合函数,它为每行数据进行一次计算:输入多行(一个窗口)、返回一个值。在报表等分析型查询中,窗口函数能优雅地表达某些需求,发挥不可替代的作用。本文首先介绍窗口函数的定义及基本语法,之后将介绍在 DBMS 和大数据系统中是如何实现高效计算窗口函数的,包括窗口函数的优化、执行以及并行执行。什么是窗口函数?窗口转载 2021-02-18 14:02:03 · 1326 阅读 · 0 评论 -
HiveSQL编程模板及注意事项
0 引言hive是数据仓库、数据分析人员必用的工具之一。实际工作中,使用hive很多时候都是在将SQL代码封装在shell脚本之下运行,这是一种常见的方式,方便调度工具调度shell脚本。1 模板代码#!/bin/bashlastday=`date --date '-1days' +%Y-%m-%d` #获得昨天的日期if [ "$2" != "" ];then lastday=$2fi;input_para="hive" #默认启动方式if [ "$1" != "" ];th原创 2021-01-04 23:26:56 · 1092 阅读 · 0 评论 -
Hive调优经验总结
目录1 表层面1.1 利用分区表优化1.2 利用分桶表优化1.3 选择合适的文件存储格式1.4 选择合适的压缩格式2 HQL层面优化2.1 执行计划2.1 列、行、分区裁剪2.2 谓词下推2.3 合并小文件2.4 合理设置MapTask并行度2.5 合理设置ReduceTask并行度2.6 Join优化2.7 CBO优化2.8 Group By优化2.9 Order By优化2.10 Count Distinct 优化2.11 怎样写i原创 2020-12-29 15:16:55 · 1197 阅读 · 0 评论 -
Hive设计模式之分区表实战
目录0 分区表1 分区表基本操作2 二级分区3 动态分区调整0 分区表分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。1 分区表基本操作1)引入分区表(需要根据日期对日志进行管理, 通过部门信息模拟)dept_20200401.logdept_20200402..原创 2020-12-06 22:00:11 · 391 阅读 · 0 评论 -
数仓ETL(shell+sql)按天、周、月、季度汇总统计代码开发模板
数仓ETL统计的时候,我们往往需要对数据进行按天、周、月、季度等几个时间维度进行批量统计。一般的开发模式都为shell中套sql的形式,这样我们可以根据定时任务跑shell脚本,同时利用shell编写一些函数来代替SQL中的存储过程。本文中的天、周、月、季度的时间维度,也是利用shell中的时间函数进行计算,这样降低了sql开发的难度,代码可维护性更高。原创 2020-10-24 23:55:03 · 1836 阅读 · 0 评论 -
sqoop生产常见问题及优化总结
0 引 言sqoop作为一种重要的数据同步工具,在大数据中具有重要地位。本文对Sqoop生产中遇到的常见问题进行总结并给出具体的解决方案。1 生产常见的问题(1)Sqoop 空值问题 Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,这就导致了两边同步数据时存储不一致问题。Sqoop在同步的时候应该严格保证两端的数据格式、数据类型一致,否则会带来异常。 方案 1:依赖自身参数 1)导出数据时采用--input-null-string...原创 2020-10-21 15:39:31 · 2894 阅读 · 2 评论 -
Hive数据仓库文件存储压缩格式探究及经验总结
数仓存储压缩格式的选择对于数仓存储及性能的优化具有重要参考意义,存储优化是一个重要的指标,他可以帮助节省磁盘存储空间,节约了成本。本文对常见的几种压缩存储方案进行了研究,并对其性能各方面进行了测试,给出了数仓中常用的存储压缩解决方案,并对实践中遇到的问题进行了总结,具有一定的借鉴意义。原创 2020-07-12 22:07:27 · 1627 阅读 · 0 评论 -
Hive中数据报错:Failed with exception java.io.IOException: rename for src path: hdfs://xx returned false.
1.现象执行hive中shell脚本的时候报如下错误Logging initialized using configuration in file:/etc/hive/1.1.0.0-0131/0/hive-log4j.propertiesQuery ID = root_20200423155947_dfd65c44-2baa-44e2-853d-3fd8e58a7701Total ...原创 2020-04-23 16:27:31 · 2344 阅读 · 2 评论 -
一文说透hive中的分桶及抽样查询
本文围绕hive中分桶问题进行展开研究,分析了hive分桶与分区的区别,分桶的相关原理、分桶的优势,并对分桶的操作方法进行详细论述,给出了具体的操作步骤及案例,本文所有的操作案例均在机器上得到验证,读者可根据本文所提供的思路快速学习到hive分桶的相关知识。原创 2020-03-29 22:59:12 · 1606 阅读 · 0 评论 -
Hive-SQL工作中常用函数总结及案例实战
本文针对hive进行数据分析时总结了工作中常用的查询函数及分析函数,并对每种函数的用法进行总结赋予案例,每种案例都具有详细的解释。文章主要以实践为主,紧紧围绕工作中常用的一些函数进行总结,更注重对函数的使用方法进行分析,其后的案例读者可自行尝试学习,具有借鉴意义。原创 2020-03-29 17:48:39 · 1991 阅读 · 0 评论