spark没有下载hive_metastore jars
Posted
技术标签:
【中文标题】spark没有下载hive_metastore jars【英文标题】:spark not downloading hive_metastore jars 【发布时间】:2021-02-25 19:49:57 【问题描述】:环境
我通过 python API 使用 spark v2.4.4
问题
根据 spark documentation 我可以通过设置以下配置强制 spark 下载所有 hive jar 以与我的 hive_metastore 交互
spark.sql.hive.metastore.version=$my_version
spark.sql.hive.metastore.jars=maven
但是,当我运行以下 python 代码时,没有从 maven 下载 jar 文件。
from pyspark.sql import SparkSession
from pyspark import SparkConf
conf = (
SparkConf()
.setAppName("myapp")
.set("spark.sql.hive.metastore.version", "2.3.3")
.set("spark.sql.hive.metastore.jars","maven")
)
spark = (
SparkSession
.builder
.config(conf=conf)
.enableHiveSupport()
.getOrCreate()
)
我怎么知道没有下载jar文件?
-
我已通过在 $SPARK_HOME/conf/log4j.properties 中设置
log4j.logger.org.apache.spark.api.python.PythonGatewayServer=INFO
将 logLevel=INFO 配置为默认值。我看不到任何日志表明 spark 正在与 maven 交互。 according to this我应该看到一个 INFO 级别的日志
即使由于某种原因我的日志记录被破坏,SparkSession 对象也只是构建得太快而无法从 maven 中拉出大罐子。它会在 5 秒内返回。如果我手动将 hive_metastore 的 maven 坐标添加到“spark.jars.packages”,则需要几分钟才能全部下载完毕
我已删除 ~/.ivy2 和 ~/.m2 目录以删除以前下载的缓存
其他测试
我还在 spark 3.0.0 集群上尝试了相同的代码,但它也不起作用 谁能发现我做错了什么?或者这个选项刚刚坏了【问题讨论】:
【参考方案1】:对于其他试图解决此问题的人:
创建 spark 上下文时,不会从 maven 下载。当您运行 hive 命令时会发生这种情况。例如spark.catalog.listDatabases()
您需要确保您尝试运行的 hive 版本受您的 spark 版本支持。并非所有版本的 hive 都受支持,不同版本的 spark 支持不同版本的 hive。
【讨论】:
以上是关于spark没有下载hive_metastore jars的主要内容,如果未能解决你的问题,请参考以下文章
03. 搭建Spark集群(CentOS7+Spark2.1.1+Hadoop2.8.0)
Spark和Kafka在IDEA整合运行时提示''com.fasterxml.jackson.databind.JsonMappingException: Incompatible J