相关文章推荐
火爆的山楂  ·  elasticsearch - ...·  1 年前    · 
失落的咖啡豆  ·  Django: ...·  1 年前    · 

异常描述:

hive中执行sql时抛出ERROR ql.Driver: FAILED: NullPointerException null java.lang.NullPointerException异常

异常分析:

打开debug模式

hive -hiveconf hive.root.logger=DEBUG,console

查看解析partition时报错,查看partition确实存在异常,一些partition不符合业务逻辑

解决方案:

删除不合逻辑的partition并修改清洗脚本,对数据入库partition部分添加判断规则

背景:我们有一个使用Spark做数据计算的项目,一直以来运行正常,近日测试环境突然发生运行时 空指针 异常问题(已脱敏处理): ERROR ApplicationMaster: User class threw exception: java.lang.RuntimeException: serious problem java.lang.RuntimeException: serious problem at org.apache.hadoop. hive .ql.io.orc.OrcInputFormat. 在一次执行代码的过程中,SparkSQL 执行正常的代码,放到 Hive 中执行直接 抛出 空指针 异常。查询了一些网上资料,大部分都是回答分区表没有分区,union 时候数据类型不一致。也不知道是直接抄袭还是同一个人的博客。但是检查了自己的代码,排除了分区以及union 过程中出现问题,但是仍然认为是数据类型造成的可能性极大。 通过仔细的排查,发现有一行代码是这样的: nvl(table2.cityintime,array(0)) as cityintime 这行代码中,cityintime 字段的类型  写了一条 hive sql ,其中条件中存在 dt>=20150101 and dt<=20150228 这样的条件,原来执行没问题,今天就 抛出 FAILED: Hive Internal Error: java.lang. NullPointerException (null)java.lang. NullPointerException at org.apache.hadoop.... @[TOC]( hive Unable to fetch table/MetaException(message:java.lang. NullPointerException )) 现象:无法 操作表 原因可能如下: 1、 hive 元数据有异常 (常见是此种情况) 解决方法: 1、查询对应库下的表 select TBL_ID from yz_dev_ hive .TBLS where TBL_NAME ='dwd_fpf_anc_file_info' and DB_ID = (select DB_ID from 这个问题在 hive 3.1已经解决,但是我查看源码之后发现 hive 2.3.6还是没解决,其实解决办法很简单,不知道为什么一直不更新,对应 hive bug是 HIVE -16958,我的 错信息如下 Diagnostic Messages for this Task: Error: java.io.IOException: java.lang.reflect.InvocationTargetExceptio... val df: DataFrame = sqlContext.sql("select vipId,brandId,dt from pro60050.browse_wxapp_page_dt_partition where dt >= 20200227 and brandId = 253") df.show()...