【问题标题】:Unable to access to Hive warehouse directory with Spark无法使用 Spark 访问 Hive 仓库目录
【发布时间】:2018-11-20 14:01:07
【问题描述】:

我正在尝试使用位于以下路径的 IntelliJ 上的 Spark 连接到 Hive 仓库目录:

hdfs://localhost:9000/user/hive/warehouse

为了做到这一点,我使用了以下代码:

import org.apache.spark.sql.SparkSession

// warehouseLocation points to the default location for managed databases and tables
val warehouseLocation = "hdfs://localhost:9000/user/hive/warehouse"

val spark = SparkSession
 .builder()
 .appName("Spark Hive Local Connector")
 .config("spark.sql.warehouse.dir", warehouseLocation)
 .config("spark.master", "local")
 .enableHiveSupport()
 .getOrCreate()

spark.catalog.listDatabases().show(false)
spark.catalog.listTables().show(false)
spark.conf.getAll.mkString("\n")

import spark.implicits._
import spark.sql

sql("USE test")
sql("SELECT * FROM test.employee").show()

正如所见,我创建了一个数据库“test”并使用 hive 控制台在该数据库中创建了一个表“employee”。我想得到最新请求的结果。

'spark.catalog.'和'spark.conf。用于打印仓库路径和数据库设置的属性。

spark.catalog.listDatabases().show(false) 给我:

  • 名称:默认
  • 说明:默认 Hive 数据库
  • locationUri : hdfs://localhost:9000/user/hive/warehouse

spark.catalog.listTables.show(false) 给了我一个空的结果。所以这一步出了点问题。

在作业执行结束时,我得到以下错误:

> Exception in thread "main" org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException: Database 'test' not found;

我还为 Hive 仓库位置配置了 hive-site.xml 文件:

<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://localhost:9000/user/hive/warehouse</value>
</property>

我已经使用 Hive 控制台创建了数据库“测试”。

下面是我的组件的版本:

  • 火花:2.2.0
  • 蜂巢:1.1.0
  • Hadoop:2.7.3

有什么想法吗?

【问题讨论】:

  • 我认为您不需要路径中的端口。使用这个val warehouseLocation = "hdfs:///user/hive/warehouse"
  • 我已经尝试过了,我得到了同样的错误。
  • 你有test数据库
  • 是的,我将“显示数据库”命令的结果发送给您:默认测试所用时间:0.542 秒,获取 2 行`

标签: scala apache-spark hadoop hive localhost


【解决方案1】:

在 IntelliJ 项目中的 src 下创建资源目录,复制该文件夹下的 conf 文件。构建项目 .. 确保正确定义 hive.metastore.warehouse.uris 路径参考 hive-site.xml 。如果您正在获取 INFO metastore: Connected to metastore 那么您可以在日志中找到。例子。

请注意,与打包 jar 并在您的 hadoop 集群上运行相比,与 intellij 建立连接并运行作业会很慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    相关资源
    最近更新 更多