Class org.datanucleus.api.jdo.JDOPersistenceManagerFactory was not found

在Spark运行于YARN上时遇到'Class org.datanucleus.api.jdo.JDOPersistenceManagerFactory was not found'的错误。问题源于Classpath缺少datanucleus-api-jdo.jar。尝试将Hive的lib添加到Classpath,但引发新的冲突,由于多个derby.jar导致的安全异常。解决方案是使用HDP中spark-client的lib替换Hive的lib,避免derby.jar冲突,问题得到解决。
摘要由CSDN通过智能技术生成

Class org.datanucleus.api.jdo.JDOPersistenceManagerFactory was not found

Class org.datanucleus.api.jdo.JDOPersistenceManagerFactory was not found

问题描述
一次应用程序迁移底层Hadoop集群(由CDH迁移至HDP),在发起Spark On YARN任务的时候,Spark任务连接Hive异常,出现如标题所示的异常。
软件版本

软件 版本
HDP 2.6.4.0-91
Spark 1.6.3
Hadoop 2.7.3

1. 思路第一步

  1. 首先查找此类,此类是在datanucleus-api-jdo.jar中的,如下图所示;
    JDOPersistenceManagerFactory
  2. 也就是说,在Spark On YARN调用的时候其Classpath并没有该类,考虑添加此jar包到Classpath;
  3. 此jar包在Hive的安装目录,直接把整个Hive的lib添加到Classpath;

<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值