
hive
文章平均质量分 97
疯狂哈丘
这个作者很懒,什么都没留下…
展开
-
Hive提交到yarn的任务一直在running问题排查-V2
解决hive已经停止的任务一直在yarn上运行的问题原创 2021-12-24 17:34:52 · 31658 阅读 · 0 评论 -
SparkSQL并发写入orc、parquet表的异常问题排查
文章目录一、问题描述二、Hive 执行overwrite语句时没有删除旧数据的原因三、SparkSQL 失败的原因四、解决方案1、排查过程2、解决方案3、spark.sql.hive.convertInsertingPartitionedTable参数的作用一、问题描述有业务反馈某张表的分区下有重复数据,该分区数据的写入任务之前曾用sparkSQL执行过,跑失败了后切换成Hive执行成功了。看了下该分区对应的目录,发现目录下同时存在sparkSQL和Hive SQL生成的文件(也就是Hive任务执行时未原创 2020-10-29 14:49:32 · 11402 阅读 · 0 评论 -
一些大任务SQL的优化方案
最近在优化集群的大任务,发现许多大任务的SQL都有一个特点:查询数据量大,导致扫描过滤以及shuffle的时间长。这种sql一般都是查询的时间范围比较大(我们集群的表基本都按天分区),从1个月到2年不等,然后又要每天运行,占用了集群相当大的资源。对于这类任务,其实有很大的优化空间。举个例子:select name, count(1) as occurCountfrom testwhere date_p > 20200901 and date_p < 20200930原创 2020-10-15 14:18:53 · 3230 阅读 · 0 评论 -
Kyuubi 输出任务进度信息改造
文章目录一、Hive QueryLog的实现客户端方面服务端实现日志的读取日志的写入二、Kyuubi 增加进度日志输出附录一、Hive QueryLog的实现由于Kyuubi、Spark ThriftServer的实现框架都是用的Hive Server。因此这里只介绍Hive Server是如何实现QueryLog的。客户端方面在HiveServer实现的jdbc客户端中,获取QueryLog实现是在HiveStatement类的getQueryLog()方法中。这个方法的底层是调用了Thrift实原创 2020-07-29 16:02:03 · 4547 阅读 · 0 评论 -
Hive on Mr Job重复执行问题排查
文章目录一、问题描述二、问题排查进度三、Hive执行任务的具体逻辑3.1、Hive源码解析3.2、生成重复job问题分析四、问题总结和代码修复一、问题描述业务反馈某张表的落地数据总大小比平时多了一倍。平时正常落地6-7G,而这次落地的数据量有14G。后该任务重跑后数据恢复正常:表落地数据使用的相关sql如下(为了不暴露公司相关业务信息,只展示sql的主体结构):set mapreduce.job.queuename=xxxxx;insert overwrite table xxxxxxxx原创 2020-06-05 17:47:49 · 30587 阅读 · 0 评论 -
【Hive任务优化】—— 小文件合并相关参数
set hive.merge.mapfiles=true;set hive.merge.mapredfiles=true;set hive.merge.smallfiles.avgsize=256000000;set hive.merge.size.per.task = 256000000;(未完待续)原创 2019-08-31 21:31:38 · 12825 阅读 · 0 评论 -
【Hive任务优化】—— Map、Reduce数量调整
文章目录一、如何调整任务map数量1、FileInputFormat的实现逻辑介绍1.1 getSplits方法实现2、CombineFileInputFormat的实现逻辑介绍2.1 getSplits方法实现3、HiveInputFormat 的实现逻辑介绍4、CombineHiveInputFormat的实现逻辑介绍5、map数量调整总结二、如何调整任务reduce数量三、关于map tas...原创 2019-07-26 10:30:40 · 8146 阅读 · 1 评论 -
HiveServer2 架构源码详解
文章目录一、HiveServer2的启动二、HiveServer2的各个服务组件1、ThriftCLIService2、CLIService3、SessionManager4、OperationManager三、一个命令的具体处理过程1、一个命令的处理流程2、关于SessionHandle和OperationHandlebeeline客户端是如何获取日志输出的四、HiveServer2中的那些重要...原创 2019-06-29 17:46:29 · 8360 阅读 · 5 评论 -
Hive导出数据时输出_SUCCESS文件解决方案
文章目录一、_SUCCESS的作用和实现1、 输出 _SUCCESS 文件的代码实现二、Hive任务导出数据时没生成_SUCCESS的原因三、解决方案1、自己实现一个OutputCommitter替代NullOutputCommitter(不建议)2、改写FileSinkOperator(不建议)3、改写MoveTask一、_SUCCESS的作用和实现我们在跑完mr或者spark程序时,会发现...原创 2019-07-02 18:54:50 · 13471 阅读 · 1 评论 -
Hive ACID和事务表支持详解
文章目录一、ACID介绍二、使用限制三、支持的一些新的语法四、主要设计和实现base和delta文件夹的基本结构事务表的读取delta文件的压缩1、 压缩类型2、Initiator 组件3、 Worker4、Cleaner5、 AcidHouseKeeperService6、 SHOW COMPACTIONS事务表的隐藏字段五、相关配置客户端方面的修改服务端方面为事务新增的相关配置一些旧的配置修改...原创 2019-04-28 19:17:10 · 8452 阅读 · 0 评论 -
Hive提交到yarn的任务一直在running问题排查
一、问题描述最近有数据平台的同学反馈yarn上面有一些任务跑了很久没有结束,状态一直处于running中。去Spark HistoryServer查看任务详情也没看到相关运行记录,需要人为手动kill任务才会停止并释放资源。二、问题排查从Spark HistoryServer可以看出,任务的Driver虽然启动了,但是并未执行job,并且一直阻塞在那没有退出。从yarn的角度来看,这个...原创 2019-04-13 15:46:50 · 33685 阅读 · 11 评论 -
Hive metastore 无法解析分区字段 is not null问题排查
文章目录一、问题描述二、解决方案一、问题描述周中发现一个问题,metastore根据条件获取分区时发生异常,导致扫描所有分区,最终导致gc异常。hive编译时会进行逻辑优化,在执行分区裁剪时,会根据相关的分区过滤条件去metastore查询要扫描的分区目录。metastore会根据hiveserver传过来的条件表达式进行解析,然后过滤不需要的分区。目前的问题是hiveserver传了一个...原创 2019-02-27 19:35:38 · 1167 阅读 · 0 评论 -
docker上从零开始搭建hadoop和hive环境
文章目录一、构建自己的centos镜像二、hadoop 伪分布式环境安装3种安装模式伪分布式环境安装1. 解压安装包2. 修改相关配置文件3. 指定HADOOP环境变量4. namenode 初始化5. 启动hdfs和yarn6. 验证程序已经正确启动三、hive环境安装编译hive安装hive1. 解压安装包2. 修改配置文件3. 初始化hive数据库4. 配置hive相关环境变量5. 验证配置...原创 2018-12-23 16:02:46 · 6533 阅读 · 7 评论 -
hive 替换第三方jar包不生效 问题排查
文章目录一、问题描述二、排查过程1. 梳理hive程序的执行流程2. 推测问题产生的原因3. 通过arthas找出罪魁祸首4. 问题总结和解决办法三、个人反思和一些总结想直接看结论和解决方案的同学可以直接跳到2.4章节。一、问题描述前几天有用户反馈将hive查询结果以orc导入到hdfs目录时出现异常,sql大概如下:insert overwrite directory '/tmp/' s...原创 2019-01-22 22:18:33 · 28558 阅读 · 0 评论 -
hive insert overwrite directory 问题排查
文章目录一、问题描述二、问题定位三、问题总结四、解决方案五、一些题外话一、问题描述线上某条hive语句出现错误,hive语句如下insert overwrite directory '/tmp/data_works_server/41109/904723/1547802020/' STORED AS ORC select 20190117, device_model, meios_vers...原创 2019-01-22 22:16:26 · 34740 阅读 · 2 评论