Исключение при подключении улья и искры В рабочий каталог root: / tmp / hive в HDFS должна быть включена запись. Текущие разрешения: rwxrwxr-x - PullRequest
0 голосов
/ 28 мая 2020

Я использую Spark 2.4.5, Hive 3.1.2, Had oop 3.2.1. При запуске hive в Spark у меня возникло следующее исключение:

Exception in thread "main" org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxrwxr-x; 

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

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").master("local")
      .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.stop()
  }

}

Это мой файл 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"
// https://mvnrepository.com/artifact/mysql/mysql-connector-java
libraryDependencies += "mysql" % "mysql-connector-java" % "8.0.19"
libraryDependencies += "org.apache.spark" %% "spark-hive" % "2.4.5"

Как может решить эту проблему? Наблюдая за консолью, я также видел это заявление, это причина, по которой у меня возникает эта проблема.

20/05/28 14:03:04 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users  with view permissions: Set(UDHAV.MAHATA); groups with view permissions: Set(); users  with modify permissions: Set(UDHAV.MAHATA); groups with modify permissions: Set()

Кто-нибудь может мне помочь?

Спасибо!

1 Ответ

2 голосов
/ 28 мая 2020

Вы можете попробовать изменить разрешения из оболочки

hdfs dfs -chmod -R 777 /tmp/hive

или запустить свой процесс Spark с другим пользователем или приложением с соответствующими разрешениями.

Вы меняете владельца каталога или файл, используя:

-chown [-R] [OWNER][:[GROUP]] PATH... :
  Changes owner and group of a file. This is similar to the shell's chown command
  with a few exceptions.

  -R  modifies the files recursively.
...