spark创建hive表时缺少jar包导致报错 (详细解决方案)

注意:使用 ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe' 这种方式 需要json中的属性名和表中的字段名保持一致。

假如你使用sparksql去创建hive表,遇到了jsonSerDe 需要导入包

org.apache.hive.service.cli.HiveSQLException: Error running query: org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: MetaException(message:java.lang.ClassNotFoundException Class org.apache.hadoop.hive.serde2.JsonSerDe not found)

解决方案

建表时,使用org.apache.hive.hcatalog.data.JsonSerDe ,这个类对应的jar是 hive-hcatalog-core-3.1.2.jar

而 org.apache.hadoop.hive.serde2.JsonSerDe 类,对应的jar包是/opt/installs/hive/lib/hive-serde-3.1.2.jar,/opt/installs/hive/lib/hive-common-3.1.2.jar

最终的一个解决方案:可以在spark中,直接把这两个包到 spark的jars 下。

(base) [root@bigdata01 moni_data]# cp /opt/installs/hive/lib/hive-serde-3.1.2.jar /opt/installs/spark/jars/

(base) [root@bigdata01 moni_data]# cp /opt/installs/hive/lib/hive-common-3.1.2.jar /opt/installs/spark/jars/

xsync.sh hive-serde-3.1.2.jar hive-common-3.1.2.jar

需要重启thrift 服务:

这个命令在 spark里的sbin 里。

stop-thriftserver.sh 然后再启动

相关推荐
Ekine42 分钟前
【Flink-scala】DataStream编程模型之水位线
大数据·flink·scala
动态一时爽,重构火葬场1 小时前
elasticsearch是如何进行搜索的?
大数据·elasticsearch·搜索引擎
叫我DPT1 小时前
24年某马最新Hadoop课程总结文档
大数据·hadoop·分布式
P.H. Infinity2 小时前
【Elasticsearch】06-JavaRestClient查询
大数据·elasticsearch·搜索引擎
希艾席蒂恩2 小时前
高效数据分析:五款报表工具助力企业智能决策
大数据·数据库·信息可视化·统计·报表·可视化
qiquandongkh3 小时前
期权懂|期权新手指南——个股期权操作方式详细解释
大数据·区块链
敲代码的飞5 小时前
【短视频矩阵系统==saas技术开发】
大数据·人工智能·矩阵·pdf·开源
w_t_y_y5 小时前
ES中的字段类型
大数据·elasticsearch·搜索引擎
Hsu_kk6 小时前
Flink 热存储维表 使用 Guava Cache 减轻访问压力
大数据·flink·guava
不久之6 小时前
hue可以插入数据到部署在docker上的cdh中的hive,但是datagrip连接的hive插入报错
大数据·运维·hive·hadoop·docker·容器·spark