美文网首页
Hive insert es 表出现空指针问题定位解决

Hive insert es 表出现空指针问题定位解决

作者: 六层楼那么高 | 来源:发表于2020-05-07 16:34 被阅读0次

问题现象

生产环境 hive 往 es 表里 insert 数据时报空指针的错:NullPointerException StandardStructObjectInspector ObjectInspectorUtils.getStandardStructFieldRef,在 Google 搜了一圈 没有发现类似的报错。

hive es 表的建表语句如下: image.png

版本信息

hive 1.2.1
es 6.4.3

相关代码与报错信息

sql 代码如下:

add jar hdfs:///user/hadoop/profile/elasticsearch-hadoop-hive-6.4.3.jar;
insert overwrite table adm.adm_es_video_metric_1d_delta_daily partition(dt = '${hiveconf:SRC_FILE_DAY}')
select
    concat(content_id,program_id) as key
    ,content_id     
    ,program_id 
    ,sum(vv) as vv                           
    ,sum(cv) as cv                           
    ,sum(valid_vv) as valid_vv                     
    ,sum(play_duration_s) as play_duration_s              
    ,sum(vvuv) as vvuv                         
    ,sum(cvuv) as cvuv                         
    ,sum(like_cnt) as like_cnt                     
    ,sum(share_cnt) as share_cnt                    
    ,sum(comment_cnt) as comment_cnt                  
    ,sum(recommend_cnt) as recommend_cnt
    ,'${hiveconf:SRC_FILE_DAY}' as dt1  
from(
select
    content_id
    ,program_id 
    ,vv                           
    ,cv                           
    ,0 as valid_vv                     
    ,0 as play_duration_s              
    ,vvuv                         
    ,cvuv                         
    ,0 as like_cnt                     
    ,0 as share_cnt                    
    ,0 as comment_cnt                  
    ,0 as recommend_cnt                
from dws_video.dws_crystal_play_cnt_1d_delta_daily t1
where dt = '${hiveconf:SRC_FILE_DAY}' and group_id = '3' 
) t5
where t5.content_id <> '-998' and t5.program_id rlike '^[0-9]{9}$'
group by content_id,program_id
;
报错信息如下: image.png

问题解决

es.resource = video_metric_{dt}/default 配置错误
{dt} 改成 {dt1} 即可,${dt1} 才是 es 表的 field name
dt 是分区字段 es.resource 支持分区参数只支持 field name ,当前版本不支持分区字段;

定位过程

resource 改成静态路径,写入的 mapping 如下:里面无 dt 字段


image.png

经测试,mapping 无法使用分区字段,即使 mapping 里指定


image.png

相关文章

网友评论

      本文标题:Hive insert es 表出现空指针问题定位解决

      本文链接:https://www.haomeiwen.com/subject/bzvaghtx.html