spark-jobserver集群上的上下文错误

时间:2016-05-13 11:56:16

标签: scala apache-spark cassandra spark-jobserver

我们正在努力在spark群集上启动spark-jobserver。

要部署服务器,请按照github.com/spark-jobserver/spark-jobserver#deployment上的文档进行操作。我们通过运行./server_deploy.sh local来部署。

我已将local.conflocal.sh上传到pastebin -

local.conf - http://pastebin.com/DWJEuX11

local.sh - http://pastebin.com/S2hjXb8J

然后我们启动我们的集群主服务器和工作程序从spark根文件夹

运行以下命令
./sbin/master-start.sh  
./bin/spark-class org.apache.spark.deploy.worker.Worker   spark://IP:PORT

检查localhost:8080它似乎工作正常。

然后我们通过运行./server_start.sh --master spark://IP:PORT --deploy-mode cluster来启动服务器,再次检查localhost:8080我们可以看到服务器已启动并在worker上的一个核心上运行。检查localhost:8090我们可以看到spark-jobserver也已启动并运行。

然后我们创建一个包含CassandraSQLContext的自定义上下文(github.com/datastax/spark-cassandra-connector/blob/master/spark-cassandra-connector/src/main/scala/org/apache/spark/sql/cassandra /CassandraSQLContext.scala)通过运行

curl -d "" 'localhost:8090/contexts/cassandra-context?context-factory=spark.jobserver.context.CassandraContextFactory&num-cpu-cores=4&memory-per-node=512m'

然后我们收到以下错误

{
    "status": "CONTEXT INIT ERROR",
    "result": {
        "errorClass": "java.lang.NoClassDefFoundError",
        "cause": "org.apache.spark.sql.cassandra.CassandraSQLContext",
        "stack":  ["java.net.URLClassLoader.findClass(URLClassLoader.java:381)"...
    }
}

我们已尝试通过在local.conf

中包含依赖关系jar来修复此错误
dependent-jar-uris = ["file:///path/to/jar.jar"]

这也给出了同样的错误。

我们还尝试在我们的job-server-extras中包含整个spark-cassandra-connector src文件夹,在运行File line length exceeds 110 characters时几乎在每个文件上都出现错误./server_deploy.sh local

我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

我只是将--packages行添加到用于启动JobServer的spark-submit。可能是最简单的解决方法。

  1. https://github.com/spark-jobserver/spark-jobserver/blob/master/bin/server_start.sh
  2. http://spark-packages.org/package/datastax/spark-cassandra-connector
  3. 您只需将--packages添加到服务器启动脚本ala

    即可

    ./server_start.sh --packages datastax:spark-cassandra-connector:VersionYouWant