当前位置: 首页 > news >正文

hive建表没使用LZO存储格式,可是数据是LZO格式时遇到的问题

       今天微博大数据平台发邮件来说。他们有一个hql执行失败。可是从gateway上面的日志看不出来是什么原因导致的,我帮忙看了一下。最后找到了问题的解决办法,下面是分析过程:

1、执行失败的hql:

INSERT OVERWRITE TABLE brand_ad_user_with_interact_score_3 
select a.uid, a.brand, a.friend, CASE b.weight WHEN NULL THEN '0.000000' ELSE b.weight END
from brand_ad_2hop_3 a
LEFT OUTER join ods_bas_user_interact_score_to_thin_3 b
on (a.uid = b.fid and a.friend = b.tid);
该hql非常easy,就是两个表关联。然后输出到另外一个表中。是一个普通的common join,没有group by等操作。所以不存在map的数据倾斜问题

2、查看job日志

依据50030页面查看了一下该job的状态和日志信息,job的状态是被kill掉的,map任务还未执行完毕就被kill掉了,被kill掉的map任务执行时间都超过了10个小时。例如以下图所看到的:


依据1中得分析。该job从hql上面看是不存储数据倾斜的,那为什么会出现单个map执行时间超过10小时的情况呢,查看了一下被kill掉map任务的counter信息,例如以下:


居然单个map任务从hdfs上面读了10G的数据。不应该啊。难不成被处理的数据文件没被分片,单个map任务处理了单个的大文件。怀揣着这种推測,我去检查了一下hql里面两个表文件夹以下的文件,果不其然,以下全是lzo格式的文件,可是都没有建索引。并且

brand_ad_2hop_3表以下个别单个文件达到了10G+,应该就是这个原因了:lzo格式的文件没有建索引。数据文件不能被分片,导致在执行的时候,单个的文件仅仅能由一个map任务处理,假设单个文件非常大的情况下。map任务就会处理非常长时间。

在检查了一下brand_ad_2hop_3的建表语句,发现存储格式为Text。

既然找到了问题原因,下面就是解决的方法了:

(1)、给lzo文件建立索引

(2)、建表的时候请使用LZO存储格式

相关文章:

  • 找不到或无法加载已注册的 .Net Framework Data Provider。
  • react Error: query failed: synchronization failed
  • web页面如何播放amr的音频文件
  • liunx运维常见命令
  • mysql的排障之二
  • [转]关于jquery中html()、text()、val()的区别
  • netfilter/iptables 结构要点
  • nginx初级安装配置
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • Codeforces 461B - Appleman and Tree 树状DP
  • Objective-C之成魔之路【9-类构造方法和成员变量作用域、以及变量】
  • MyBatis学习总结(11)——MyBatis动态Sql语句
  • Android应用正确使用扩展SD卡,特别是安卓4.4以后的版本
  • 开源HYBUnicodeReadable日志显示Unicode中文
  • CKEditor在线编辑器增加一个自定义插件
  • 「译」Node.js Streams 基础
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • avalon2.2的VM生成过程
  • CSS 专业技巧
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Shadow DOM 内部构造及如何构建独立组件
  • SQL 难点解决:记录的引用
  • Yii源码解读-服务定位器(Service Locator)
  • 初识 webpack
  • 观察者模式实现非直接耦合
  • 后端_MYSQL
  • 将 Measurements 和 Units 应用到物理学
  • 爬虫模拟登陆 SegmentFault
  • 前端知识点整理(待续)
  • 日剧·日综资源集合(建议收藏)
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 我与Jetbrains的这些年
  • 小试R空间处理新库sf
  • 优化 Vue 项目编译文件大小
  • 字符串匹配基础上
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • #、%和$符号在OGNL表达式中经常出现
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (day 12)JavaScript学习笔记(数组3)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (差分)胡桃爱原石
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (汇总)os模块以及shutil模块对文件的操作
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (四)库存超卖案例实战——优化redis分布式锁
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)ABI是什么
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • (转载)(官方)UE4--图像编程----着色器开发
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .net framework 4.0中如何 输出 form 的name属性。