【发布时间】:2016-05-24 17:40:03
【问题描述】:
我有一个运行 DataStax Enterprise 4.8 和 Spark 1.4.1 的节点独立集群,我以集群模式向它提交我的应用程序,如下所示:
dse spark-submit \
--class MyApp \
--master spark://MY-IP:6066 \
--deploy-mode cluster \
--packages LIST-OF-MY-DEPENDECIES \
MyApp.jar
这似乎可以正常工作。它将所有传递依赖的所有 JAR 下载到本地 Maven 并启动我的应用程序,但是这些 JAR 不在类路径上。
object MyApp {
def main(args: Array[String]): Unit = {
// This fails with: ClassNotFoundException
getClass.getClassLoader.loadClass("akka.cluster.Cluster$")
}
}
我发现类加载器 (org.apache.spark.util.MutableURLClassLoader) 及其父类仅包含由位于 /usr/share/dse 下的 DataStax 提供的标准静态 JAR,但没有我的依赖项。
另一个发现是,名为 spark.jars 的 Spark 配置属性(以及系统属性)包含这些 JAR 的列表。这些应该如何到达类路径?
【问题讨论】:
标签: scala apache-spark datastax datastax-enterprise