hive建表没使用LZO存储格式,但是数据是LZO格式时遇到的问题
2014-10-13 16:30
260 查看
今天微博大数据平台发邮件来说,他们有一个hql运行失败,但是从gateway上面的日志看不出来是什么原因导致的,我帮忙看了一下,最后找到了问题的原因,以下是分析过程:
1、运行失败的hql:
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存储格式
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很简单,就是两个表关联,然后输出到另外一个表中,是一个普通的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存储格式
相关文章推荐
- hive建表没使用LZO存储格式,可是数据是LZO格式时遇到的问题
- 使用Mysql遇到的几个数据类型/格式的问题
- spark 存储json数据遇到问题——json4s使用(二)
- spark 存储json数据遇到问题——json4s使用(一)
- android中使用csv文件来存储数据中遇到的几个问题
- 使用HtmlAgilityPack和ScrapySharp抓取网页数据遇到的几个问题解决方法——格式编码问题
- 使用poi做excel导出时解决以文本格式存储的数字问题
- WindowsMobile(Winform)开发中的数据存储(解决在不同的Form中要调用对方的方法或者使用对方的数据问题)
- 使用PB9.0数据窗口遇到的问题
- 取从textarea中存到MYSQL的数据以原格式显示问题以及解决MySQL日期处理和标签的使用
- Gson使用中遇到的Date格式问题
- VS2008下使用Linq To Entity的Skip().Take()分页查询时遇到数据结果不对的问题
- dbf转换到excel,改数据后---转txt 然后又foxpro导入为dbf格式,但是有点问题!
- 使用ADO.net 实体数据模型遇到的问题
- 图片按钮,使用get方法提交数据时遇到的严重问题!
- 使用MySQL保存中文数据时,经常会遇到乱码问题的解决思路
- 在sina weibo 开发中遇到的Status数据与Adapter中的getView()方法使用小问题
- 数据绑定控件和XmlDataSource控件结合使用,通过后台绑定Xml数据片段遇到的问题
- 开发时遇到使用LINQ无法进行数据插入时的问题
- [收藏]使用scanf输入double格式的数据问题