You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark运行方式不同导致无法识别Hive数据库问题求助

问题:Spark Submit脚本无法显示所有Hive数据库

Spark的运行方式会影响Hive数据库的可见性,我执行了以下三个操作:

  • 1. 直接使用Hive CLI
hive> show databases;

OK
default
mydb
sparkdb
Time taken: 0.041 seconds, Fetched: 3 row(s)
  • 2. 使用pyspark3 Shell
Using Python version 3.6.9 (default, Feb 28 2023 09:55:20)
Spark context Web UI available at http://training.us-west4-b.c.ace-sight-379210.internal:4040
Spark context available as 'sc' (master = yarn, app id = application_1678451025755_0002).
SparkSession available as 'spark'.

>>> spark.sql(""" show databases; """)

23/03/10 12:24:55 WARN HiveConf: HiveConf of name hive.stats.jdbc.timeout does not exist
23/03/10 12:24:55 WARN HiveConf: HiveConf of name hive.stats.retries.wait does not exist
+---------+
|namespace|
+---------+
|  default|
|     mydb|
|  sparkdb|
+---------+
  • 3. 使用spark3-submit提交脚本
    脚本内容:
from pyspark.sql import SparkSession

spark = SparkSession.builder.master("yarn").appName("Test").getOrCreate()

print(spark.sql(""" show databases """))

执行命令:spark3-submit --master=yarn script.py

输出结果:

+---------+
|namespace|
+---------+
|  default|
+---------+

疑问:第三种方法无法显示所有数据库,我已经将hive-site.xml复制到spark/conf目录,且第二种方法运行正常,请问问题出在哪里?


分析与解决办法
  • 核心原因:pyspark Shell默认自动启用Hive支持,会自动加载Hive配置并关联Hive metastore;但通过spark-submit提交的脚本,默认构造的SparkSession不会主动启用Hive支持,导致只能访问默认的default数据库。

  • 解决步骤:

    1. 显式启用Hive支持:修改脚本中的SparkSession构建代码,添加enableHiveSupport()配置,同时注意用show()方法打印DataFrame内容(print只会输出对象信息,不会打印数据):
      from pyspark.sql import SparkSession
      
      spark = SparkSession.builder \
          .master("yarn") \
          .appName("Test") \
          .enableHiveSupport()  # 关键:启用Hive支持
          .getOrCreate()
      
      spark.sql("show databases").show()
      
    2. 集群配置检查:
      • 确保YARN集群所有节点的spark/conf目录都存在hive-site.xml,或者提交脚本时通过--files参数携带该文件:
        spark3-submit --master=yarn --files /path/to/hive-site.xml script.py
        
      • 验证提交脚本的用户权限,需与Hive CLI、pyspark Shell使用的用户权限一致,权限不足会导致无法访问非默认数据库。

内容的提问来源于stack exchange,提问作者Gatto Nou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:12:55