我们正在努力在spark群集上启动spark-jobserver。
要部署服务器,请按照github.com/spark-jobserver/spark-jobserver#deployment上的文档进行操作。我们通过运行./server_deploy.sh local
来部署。
我已将local.conf
和local.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
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
。
我们将不胜感激。
答案 0 :(得分:0)
我只是将--packages行添加到用于启动JobServer的spark-submit。可能是最简单的解决方法。
见
您只需将--packages添加到服务器启动脚本ala
即可 ./server_start.sh --packages datastax:spark-cassandra-connector:VersionYouWant