如何解决无法在 spark 中配置自定义 hive-metastore-client
我们在使用 spark 和 hive 时面临一些挑战。 我们需要从 spark 连接到 hive-metastore,我们必须在 spark 中使用自定义的 hive-metastore-client。 代码片段:
spark = SparkSession \
.builder \
.config('spark.sql.hive.metastore.version','3.1.2' ) \
.config('spark.sql.hive.metastore.jars','hive-standalone-metastore-3.1.2-sqlquery.jar') \
.config("spark.yarn.dist.jars","hive-exec-3.1.2.jar") \
.config('hive.metastore.uris',"thrift://localhost:9090") \
上述代码适用于内置的 hive-metastore-client,但因自定义而失败,并出现错误:
py4j.protocol.Py4JJavaError:调用 o79.databaseExists 时发生错误。 : java.lang.NoClassDefFoundError: org/apache/hadoop/hive/ql/metadata/HiveException
引起:java.lang.ClassNotFoundException:org.apache.hadoop.hive.ql.metadata.HiveException
为了解决这个问题,我们在代码中配置了自定义 hive-exec 并尝试使用命令行传递:
- /usr/local/Cellar/apache-spark/3.1.2/libexec/bin/spark-submit spark-session.py --jars hive-exec-3.1.2.jar
- /usr/local/Cellar/apache-spark/3.1.2/libexec/bin/spark-submit spark-session.py --conf spark.executor.extraClassPath hive-exec-3.1.2.jar
- /usr/local/Cellar/apache-spark/3.1.2/libexec/bin/spark-submit spark-session.py --driver-class-path hive-exec-3.1.2.jar
但是问题还没有解决,任何建议都会帮助我们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。