spark 没有下载 hive_metastore 个 jars

spark not downloading hive_metastore jars

环境

我正在通过 python API

使用 spark v2.4.4

问题

根据 spark documentation 我可以通过设置以下配置

强制 spark 下载所有与我的 hive_metastore 交互的配置单元 jar

但是,当我运行以下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 文件?

  1. 我通过在 $SPARK_HOME/conf/log4j.properties 中设置 log4j.logger.org.apache.spark.api.python.PythonGatewayServer=INFO 将 logLevel=INFO 配置为默认值。我看不到任何日志记录表明 spark 正在与 maven 交互。 according to this 我应该看到 INFO 级别的日志
  2. 即使由于某种原因我的日志记录被破坏,SparkSession 对象只是构建得太快而无法从 maven 中提取大罐子。它 returns 不到 5 秒。如果我手动将 hive_metastore 的 Maven 坐标添加到“spark.jars.packages”,则需要几分钟才能全部下载
  3. 我删除了 ~/.ivy2 和 ~/.m2 目录以删除以前下载的缓存

其他测试

对于其他试图解决此问题的人:

  • 当您创建 spark 上下文时,不会从 maven 下载。当您 运行 一个配置单元命令时会发生这种情况。例如 spark.catalog.listDatabases()
  • 您需要确保您尝试 运行 的 hive 版本受您的 spark 版本支持。不是所有版本的hive都支持,不同版本的spark支持不同版本的hive。