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

dxxyhpgq  于 2022-09-27  发布在  Spark
关注(0)|答案(2)|浏览(363)

以下是我在系统中安装的Spark&Hive版本

Sparkspark-1.4.0-bin-hadoop2.6
Hive:e1d1e

我已将配置单元安装配置为使用MySQL作为Metastore。目标是访问MySQL元存储并在spark-shell内执行HiveQL查询(使用HiveContext
到目前为止,我能够通过访问Derby元存储来执行HiveQL查询(如这里所述,相信Spark-1.4Hive 0.13.1捆绑在一起,后者又将内部Derby数据库用作元存储)
然后,我尝试通过设置$SPARK_HOME/conf/spark-defaults.conf中下面给出的属性(如这里所建议的),将spark-shell指向我的外部元存储(本例中为MySQL),

spark.sql.hive.metastore.jars   /home/mountain/hv/lib:/home/mountain/hp/lib

我还将$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.

我是否遗漏了什么(或)没有正确设置属性spark.sql.hive.metastore.jars

bmvo0sr5

bmvo0sr51#

注:在Linux Mint中已验证
如果要在Spark默认设置中设置属性。conf,spark只有在您使用spark提交作业时才会使用这些设置。
文件:spark-defaults.conf

spark.driver.extraJavaOptions      -Dlog4j.configuration=file:log4j.properties -Dspark.yarn.app.container.log.dir=app-logs -Dlogfile.name=hello-spark
spark.jars.packages                 org.apache.spark:spark-sql-kafka-0-10_2.12:3.0.1,org.apache.spark:spark-avro_2.12:3.0.1

在终端运行您的作业,说wordcount.py

spark-submit /path-to-file/wordcount.py

如果要在开发模式下从IDE运行作业,则应使用config()方法。这里我们将设置Kafka jar包

spark = SparkSession.builder \
    .appName('Hello Spark') \
    .master('local[3]') \
    .config("spark.streaming.stopGracefullyOnShutdown", "true") \
    .config("spark.jars.packages", "org.apache.spark:spark-sql-kafka-0-10_2.12:3.0.1") \
    .getOrCreate()
xjreopfe

xjreopfe2#

配置单元站点的损坏版本。xml将导致此问题…请复制正确的hive-site.xml

相关问题