gpt4 book ai didi

java - 根据 DataStax Enterprise 的运行时类路径构建 Spark 应用程序

转载 作者:行者123 更新时间:2023-11-29 04:49:27 25 4
gpt4 key购买 nike

我有带 Spark 的 DataStax Enterprise 4.8。我想使用 Gradle 构建一个用 Scala 编写的 Spark 应用程序并在此 DSE 集群上运行它,但我想避免在运行时出现任何类路径问题。

目前,我的编译时依赖项(和冲突解决方案)由 Gradle 自动管理,这已经在运行时引起了各种问题。

什么是标准方式?我想避免构建一个包含所有依赖项的 fat-jar。

最佳答案

我只会使用 dse spark-classpath 命令提供的库。我会将其合并到构建文件中,例如

对于 SBT

val sparkClasspathStr = s"$DSE_HOME/bin/dse spark-classpath".!!.trim
val sparkClasspathArr = sparkClasspathStr.split(':')

//Find all Jars on dse spark-classpath
val sparkClasspath = {
for ( dseJar <- sparkClasspathArr if dseJar.endsWith("jar"))
yield Attributed.blank(file(dseJar))
}.toSeq

//Your dependencies
//libraryDependencies += "com.github.scopt" %% "scopt" % "3.2.0"

//Add dse jars to classpath
unmanagedJars in Compile ++= sparkClasspath
unmanagedJars in Test ++= sparkClasspath

Gradle

def DSE_HOME = (System.getenv("DSE_HOME") != null) ? System.getenv("DSE_HOME") : System.getenv("HOME")+"dse"

def sparkClasspathStr = (DSE_HOME + "/bin/dse spark-classpath").execute().text.trim()
def sparkClasspathJars = sparkClasspathStr.split(":").findAll{ it.endsWith(".jar") }

dependencies {
compile files(sparkClasspathJars)
}

关于java - 根据 DataStax Enterprise 的运行时类路径构建 Spark 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35969505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com