Исключение при запуске поддержки улья в Spark: невозможно создать экземпляр SparkSession с поддержкой Hive, поскольку классы Hive не найдены - PullRequest
0 голосов
/ 27 мая 2020

Здравствуйте, я пытаюсь использовать Hive с Spark, но когда я пытаюсь выполнить, он показывает эту ошибку

Exception in thread "main" java.lang.IllegalArgumentException: Unable to instantiate SparkSession with Hive support because Hive classes are not found.

Это мой исходный код

package com.spark.hiveconnect

import java.io.File

import org.apache.spark.sql.{Row, SaveMode, SparkSession}

object sourceToHIve {
  case class Record(key: Int, value: String)
  def main(args: Array[String]){
    val warehouseLocation = new File("spark-warehouse").getAbsolutePath

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

    import spark.implicits._
    import spark.sql

    sql("CREATE TABLE IF NOT EXISTS src (key INT, value STRING) USING hive")
    sql("LOAD DATA LOCAL INPATH '/usr/local/spark3/examples/src/main/resources/kv1.txt' INTO TABLE src")
    sql("SELECT * FROM src").show()

    spark.close()
  }
}

Это мой build.sbt файл.

name := "SparkHive"

version := "0.1"

scalaVersion := "2.12.10"

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.5"
// https://mvnrepository.com/artifact/org.apache.spark/spark-sql
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.5"

И еще у меня в консоли запущен куст. Кто-нибудь может мне с этим помочь? Спасибо.

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Основная проблема заключается в том, что класс «org. apache .had oop .hive.conf.HiveConf» не может быть загружен. вы можете вставить следующий код для тестирования.

Class.forName("org.apache.hadoop.hive.conf.HiveConf",true,
            Thread.currentThread().getContextClassLoader);

И в этой строке будет ошибка.

Точнее, основная проблема в том, что ваш pom может не поддерживать куст на искре. вы можете проверить следующую зависимость.

<dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-hive_2.11</artifactId>
      <version>2.4.3</version>
</dependency>

Класс "org. apache .had oop .hive.conf.HiveConf" находится в этой зависимости.

0 голосов
/ 27 мая 2020

попробуйте добавить

libraryDependencies += "org.apache.spark" %% "spark-hive" % "2.4.5"
...