cdh6.3.2上Hive on Spark模式下hive无法使用JsonSerDe问题

昨晚群内网友创建hive外部表(图一)后查询(Hive on Spark模式)便报错(图二):

而我在cdh6.3.2上初次尝试建JsonSerDe外部表(参考:hive中创建hive-json格式的表及查询)时报错(图三):

ERROR hive.log: error in initSerDe: java.lang.ClassNotFoundException Class org.apache.hive.hcatalog.data.JsonSerDe not found

我的解决方案:

1)查找此cdh6.3.2上Hive组件(仅需配置HiveServer2角色所在机器cdh632-worker03)自带的hive-hcatalog-core.jar(图四)

2)cp此jar到第3步骤所指目录(图四)

3)按照community cloudera设置HIVE_AUX_JARS_PATH(图五),说明:由于我使用了atlas(见我往期csdn博客),但又不知如何将HIVE_AUX_JARS_PATH配置成多目录,故第2步骤中采取了cp方式(若网友有更好推荐,请评论)

于是便成功查询hive见图六(Hive on Spark模式,关于cdh6.3.2上具体配置见我往期csdn博客)

而群内网友采用我方案后依然报错如图七

可能他需要参考:

(1)永久生效:Hive中带条件查询时报Class org.apache.hive.hcatalog.data.JsonSerDe not found的错误及解决办法

(2)临时生效(add jar方式):hive存储json格式文件,经查阅此文“参考资料”发现apache hive官方确实推荐此方式(图八)

(3)community.cloudera官方所提hive -hiveconf hive.aux.jars.path=...方式理论上等同于方式(2),而我的却依然无效。

最后经查:Hive 利用 JsonSerde 处理 JSON 格式数据,在hive建表语句中使用hive自带jar包org.apache.hive.hcatalog.data.JsonSerDe是不支持忽略格式错误数据的,至于我cdh6.3.2环境下可下载此文文首第一个github网址中1.3.8版本(作者已断更:https://github.com/rcongiu/Hive-JSON-Serde/issues/223

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值