Scala 无法使用spark-2.3.0创建spark仓库目录
我想与akka和spark一起创建一个项目。我添加了依赖项和其他一些依赖项。这些依赖关系将对使用spark产生任何影响 我有下面的sbt文件 下面是我的火花代码Scala 无法使用spark-2.3.0创建spark仓库目录,scala,apache-spark,akka,Scala,Apache Spark,Akka,我想与akka和spark一起创建一个项目。我添加了依赖项和其他一些依赖项。这些依赖关系将对使用spark产生任何影响 我有下面的sbt文件 下面是我的火花代码 当我尝试执行此操作时,它正在创建metastore_db文件夹,但spark warehouse文件夹没有创建。此目录不是由getOrCreate创建的。您可以在Spark源代码中检查它:getOrCreate将其操作委托给SparkSession.getOrCreate,它只是一个setter。所有内部测试和CliSuite都使用
当我尝试执行此操作时,它正在创建metastore_db文件夹,但spark warehouse文件夹没有创建。此目录不是由
getOrCreate
创建的。您可以在Spark源代码中检查它:getOrCreate
将其操作委托给SparkSession.getOrCreate
,它只是一个setter。所有内部测试和CliSuite
都使用这样的代码段来提前初始化目录:val warehousePath=Utils.createTempDir()
相反,在实际的用户代码中,您必须执行至少一个数据修改操作来具体化仓库目录。试着在代码结束后运行类似的程序,然后再次检查硬盘上的仓库目录:
导入SPARK.implicits_
导入SPARK.sql
sql(“删除表,如果存在测试”)
sql(“如果不存在,则创建表使用配置单元测试(键INT,值字符串))
删除conf.set(“spark.sql.warehouse.dir”,warehouseLocation)”时会发生什么情况
?通常情况下,我的目录是在项目目录中创建的,因为我正在那里使用sbt run
。我通过删除warehouselocation进行了尝试。它没有创建spark warehouse文件夹。删除启用HIVESupport
时是否会创建目录?如果手动创建目录会发生什么情况(权限问题)?我认为hive使用的是hdfs
path或hive元存储。另外,请尝试在您的仓库位置
路径之前添加文件://
。尝试启用HIVESupport 373574[default akka.actor.default-dispatcher-9]WARN hive.ql.metadata.hive-无法访问元存储时,我遇到以下错误。不应在运行时访问此类。org.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeException:无法实例化org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-core" % "2.8.7"
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.7"
dependencyOverrides += "com.fasterxml.jackson.module" % "jackson-module-scala_2.11" % "2.8.7"
lazy val commonSettings = Seq(
organization := "com.bitool.analytics",
scalaVersion := "2.11.12",
libraryDependencies ++= Seq(
"org.scala-lang.modules" %% "scala-async" % "0.9.6",
"com.softwaremill.macwire" %% "macros" % "2.3.0",
"com.softwaremill.macwire" %% "macrosakka" % "2.3.0",
"com.typesafe.akka" %% "akka-http" % "10.0.6",
"io.swagger" % "swagger-jaxrs" % "1.5.19",
"com.github.swagger-akka-http" %% "swagger-akka-http" % "0.9.1",
"io.circe" %% "circe-generic" % "0.8.0",
"io.circe" %% "circe-literal" % "0.8.0",
"io.circe" %% "circe-parser" % "0.8.0",
"io.circe" %% "circe-optics" % "0.8.0",
"org.scalafx" %% "scalafx" % "8.0.144-R12",
"org.scalafx" %% "scalafxml-core-sfx8" % "0.4",
"org.apache.spark" %% "spark-core" % "2.3.0",
"org.apache.spark" %% "spark-sql" % "2.3.0",
"org.apache.spark" %% "spark-hive" % "2.3.0",
"org.scala-lang" % "scala-xml" % "2.11.0-M4",
"mysql" % "mysql-connector-java" % "6.0.5"
)
)
lazy val root = (project in file(".")).
settings(commonSettings: _*).
settings(
name := "BITOOL-1.0"
)
ivyScala := ivyScala.value map {
_.copy(overrideScalaVersion = true)
}
fork in run := true
private val warehouseLocation = new File("spark-warehouse").getAbsolutePath
val conf = new SparkConf()
conf.setMaster("local[4]")
conf.setAppName("Bitool")
conf.set("spark.sql.warehouse.dir", warehouseLocation)
val SPARK = SparkSession
.builder().config(conf).enableHiveSupport()
.getOrCreate()
val SPARK_CONTEXT = SPARK.sparkContext