0

我使用 HDP3.1 并添加了 Spark2、Hive 和其他所需的服务。我在 Hive 中关闭了 ACID 功能。spark 作业在 hive 中找不到表。但是该表存在于 Hive 中。异常喜欢: org.apache.spark.sql.AnalysisException: Table or view not found Spark 的 conf 文件夹中有 hive-site.xml。它由 HDP 自动创建。但它与 hive 的 conf 文件夹中的文件不同。并且从日志中spark可以正确获取hive的thrift URI。我使用 spark sql 并在 spark-shell 中创建了一个配置单元表。我发现该表是在 spark.sql.warehouse.dir 指定的折叠中创建的。我将其值更改为 hive.metastore.warehouse.dir 的值。但问题仍然存在。创建火花会话时,我还启用了配置单元支持。

val ss = SparkSession.builder().appName("统计").enableHiveSupport().getOrCreate()
4

3 回答 3

1

您可以使用 hivewarehouse 连接器并在 hive conf 中使用 llap

于 2019-05-31T03:46:53.193 回答
0

在 spark 的 conf 文件夹中的 hive-site.xml 中有 metastore.catalog.default。它的价值是火花。应该改为蜂巢。顺便说一句,我们应该禁用 hive 的 ACID 功能。

于 2019-04-23T11:04:07.957 回答
0

在 HDP 3.0 及更高版本中,Spark 和 Hive 使用独立的目录来访问相同或不同平台上的 SparkSQL 或 Hive 表。

默认情况下,Spark 只读取 Spark 目录。而且,这意味着尝试读取/写入使用 hive CLI 创建的表的 Spark 应用程序将失败,并出现 table not found 异常。

解决方法:

于 2020-11-13T05:48:20.603 回答