分享

SparkSession Error while instantiating 'org.apache.spark.sql.hive.HiveSession...

[mw_shl_code=java,true]val spark = SparkSession.builder().appName(this.getClass.getSimpleName)
        .master(master).config("hive.metastore.warehouse.dir", "/user/hive/warehouse").config("spark.sql.warehouse.dir", "/user/hive/warehouse")
        .enableHiveSupport().getOrCreate()[/mw_shl_code]
我用上面的方式创建一个SparkSession,然后读取SparkSQL中的数据,但总是报下面的错误:
[mw_shl_code=applescript,true]2018-05-21 11:04:07 ERROR [dispatcherServlet]:181 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState':] with root cause
Persistence process has been specified to use a ClassLoaderResolver of name "datanucleus" yet this has not been found by the DataNucleus plugin mechanism. Please check your CLASSPATH and plugin specification.
org.datanucleus.exceptions.NucleusUserException: Persistence process has been specified to use a ClassLoaderResolver of name "datanucleus" yet this has not been found by the DataNucleus plugin mechanism. Please check your CLASSPATH and plugin specification.
        at org.datanucleus.NucleusContext.<init>(NucleusContext.java:283)
        at org.datanucleus.NucleusContext.<init>(NucleusContext.java:247)
        at org.datanucleus.NucleusContext.<init>(NucleusContext.java:225)
        at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.<init>(JDOPersistenceManagerFactory.java:416)
        at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.createPersistenceManagerFactory(JDOPersistenceManagerFactory.java:301)
        at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactory(JDOPersistenceManagerFactory.java:202)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at javax.jdo.JDOHelper$16.run(JDOHelper.java:1965)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.jdo.JDOHelper.invoke(JDOHelper.java:1960)
        at javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1166)
        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808)
        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701)
        at org.apache.hadoop.hive.metastore.ObjectStore.getPMF(ObjectStore.java:365)
        at org.apache.hadoop.hive.metastore.ObjectStore.getPersistenceManager(ObjectStore.java:394)
        at org.apache.hadoop.hive.metastore.ObjectStore.initialize(ObjectStore.java:291)
        at org.apache.hadoop.hive.metastore.ObjectStore.setConf(ObjectStore.java:258)
        at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:73)
        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133)
        at org.apache.hadoop.hive.metastore.RawStoreProxy.<init>(RawStoreProxy.java:57)[/mw_shl_code]

已有(16)人评论

跳转到指定楼层
einhep 发表于 2018-5-21 14:10:30
是否尝试spark-shell设置
HADOOP_CONF_DIR 这个属性是否配置
回复

使用道具 举报

zstu 发表于 2018-5-21 14:48:43
einhep 发表于 2018-5-21 14:10
是否尝试spark-shell设置
HADOOP_CONF_DIR 这个属性是否配置

不是用spark-shell运行的。我是spring+spark的方式,在本地跑是没问题的,但打包上线运行就有问题。然后单独的spark访问sparksql数据也是没有问题
回复

使用道具 举报

NEOGX 发表于 2018-5-21 17:24:19
zstu 发表于 2018-5-21 14:48
不是用spark-shell运行的。我是spring+spark的方式,在本地跑是没问题的,但打包上线运行就有问题。然后 ...

那就是线上环境配置问题。spark-env.sh中

HADOOP_CONF_DIR 这个属性是否配置。

回复

使用道具 举报

zstu 发表于 2018-5-21 18:45:23
NEOGX 发表于 2018-5-21 17:24
那就是线上环境配置问题。spark-env.sh中

HADOOP_CONF_DIR 这个属性是否配置。

这个配过了。不用spring的时候,单独跑sparksql是可以的
回复

使用道具 举报

hello2018 发表于 2018-5-21 18:50:27
zstu 发表于 2018-5-21 18:45
这个配过了。不用spring的时候,单独跑sparksql是可以的

那就在代码里面设置下。可能没有获取到。还有相关库等,是否都加载,该复制的复制到对应路径。
回复

使用道具 举报

zstu 发表于 2018-5-21 19:14:37
hello2018 发表于 2018-5-21 18:50
那就在代码里面设置下。可能没有获取到。还有相关库等,是否都加载,该复制的复制到对应路径。

在代码中配置了, 还是那个错误
回复

使用道具 举报

langke93 发表于 2018-5-22 16:49:55
zstu 发表于 2018-5-21 19:14
在代码中配置了, 还是那个错误

这个恐怕不是初始化那么简单。用jdo了吗?
jdo是如何安装的
回复

使用道具 举报

zstu 发表于 2018-5-22 17:13:36
langke93 发表于 2018-5-22 16:49
这个恐怕不是初始化那么简单。用jdo了吗?
jdo是如何安装的

没有用这个
回复

使用道具 举报

hello2018 发表于 2018-5-22 17:31:15

既然在spring里面,那你spring的一些配置需要放到集群环境。脱离环境直接在上面跑,有问题可能性是非常大的。

spark集群是整合编译spring后的spark吗?

回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条