在“spark-defaults.conf”中设置属性“spark.sql.hive.metastore.jars”后出现异常

Raj*_*Raj 5 hive scala apache-spark apache-spark-sql

下面给出的是我在系统中安装的 Spark 和 Hive 的版本

火花spark-1.4.0-bin-hadoop2.6

蜂巢apache-hive-1.0.0-bin

我已将 Hive 安装配置为使用MySQL作为 Metastore。目标是访问MySQL Metastore 并在内部执行 HiveQL 查询spark-shell(使用HiveContext

到目前为止,我能够通过访问 Derby Metastore 来执行 HiveQL 查询(如此处所述相信Spark-1.4与Hive 0.13.1捆绑在一起,而 Hive 0.13.1 又使用内部 Derby 数据库作为 Metastore)

然后我尝试通过设置下面给出的spark-shell属性(如此处建议的)来指向我的外部元存储(在本例中为 MySQL $SPARK_HOME/conf/spark-defaults.conf

spark.sql.hive.metastore.jars   /home/mountain/hv/lib:/home/mountain/hp/lib
Run Code Online (Sandbox Code Playgroud)

我也复制$HIVE_HOME/conf/hive-site.xml进去了$SPARK_HOME/conf。但是当我启动时出现以下异常spark-shell

    mountain@mountain:~/del$ spark-shell 
    Spark context available as sc.
    java.lang.ClassNotFoundException: java.lang.NoClassDefFoundError: 
org/apache/hadoop/hive/ql/session/SessionState when creating Hive client 
using classpath: file:/home/mountain/hv/lib/, file:/home/mountain/hp/lib/
    Please make sure that jars for your version of hive and hadoop are 
included in the paths passed to spark.sql.hive.metastore.jars.
Run Code Online (Sandbox Code Playgroud)

我是否遗漏了某些内容(或)没有正确设置属性spark.sql.hive.metastore.jars

小智 -1

hive-site.xml 版本损坏会导致此问题...请复制正确的 hive-site.xml