【问题标题】:Spark with Hive : Table or view not foundSpark with Hive:找不到表或视图
【发布时间】:2019-02-24 20:29:04
【问题描述】:

ApplicationMaster:用户类抛出异常:org.apache.spark.sql.AnalysisException:找不到表或视图:“DB_X”。“table_Y”

Spark 会话:

  SparkSession
    .builder()          
    .appName(appName)
    .config("spark.sql.warehouse.dir", "/apps/hive/warehouse")
    .enableHiveSupport()
    .getOrCreate();

hive-site.xml 中的 Hive 仓库目录:/apps/hive/warehouse/

hadoop fs -ls /apps/hive/warehouse/
drwxrwxrwx   - root hadoop          0 2018-09-03 11:22 /apps/hive/warehouse/DB_X.db


hadoop fs -ls /apps/hive/warehouse/DB_X.db
none

这里抛出错误:

spark
   .read()
   .table("DB_X.table_Y");

在java中:

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

在 spark-shell 交互中:

spark.sql("show databases").show()
default
DB_X

显示创建表table_Y:

CREATE EXTERNAL TABLE `table_Y`(
...
PARTITIONED BY (
  `partition` string COMMENT '')
...
    location '/data/kafka-connect/topics/table_Y'

hadoop 文件:

hadoop fs -ls /data/kafka-connect/topics/table_Y
drwxr-xr-x   - kafka hdfs          0 2018-09-11 17:24 /data/kafka-connect/topics/table_Y/partition=0
drwxr-xr-x   - kafka hdfs          0 2018-09-11 17:24 /data/kafka-connect/topics/table_Y/partition=1

hadoop fs -ls data/kafka-connect/topics/table_Y/partition=0
-rw-r--r--   3 kafka hdfs     102388 2018-09-11 17:24 /data/kafka-connect/topics/table_Y/partition=0/table_Y+0+0001823382+0001824381.avro
-rw-r--r--   3 kafka hdfs     102147 2018-09-11 17:24 /data/kafka-connect/topics/table_Y/partition=0/table_Y+0+0001824382+0001825381.avro
...

在 spark-shell 或 hive-shell 中一切正常

hive conf 中的 hive-site.xml 复制到 spark2/conf 中

使用 HDP 2.6.4.0-91 和 spark 2.2

有什么帮助吗?

【问题讨论】:

  • 确保您已将 hive-site.xml 复制到 /etc/spark2/conf 目录 cp /etc/hive/conf /hive-site.xml /etc/spark2/conf 然后重启spark2服务,尝试从表中读取数据。
  • 你可以从 spark-sql 中的表中选择吗?或者例如在 spark-shell spark.sql("select * from DB_X.table_Y limit 10")
  • 也可以试试spark.sql("show tables in DB_X")
  • @Shu hive-site.xml 已经复制到 spark2/conf 中,它可以从 spark-shell 和 hive shell 中工作。
  • @serge_k 是的,从 spark-shell 一切正常

标签: java apache-spark hadoop hive apache-spark-sql


【解决方案1】:

使用 HA 名称重定位表可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 2015-11-19
    • 2023-04-01
    • 2015-11-06
    • 1970-01-01
    相关资源
    最近更新 更多