2016-08-12 46 views
0

我想按照这个文档:如何查询Spark JobServer并找到它存储Jars的位置?

https://github.com/spark-jobserver/spark-jobserver#dependency-jars

方案2中列出的文档说:

从属JAR-的URI也可以在作业配置PARAM 使用提交工作时。在ad-hoc上下文中,这与依赖jar-uris上下文配置参数具有相同的效果 。在持续的 上下文中,将为当前作业加载罐子,然后为将在持久上下文上执行的每个 作业加载罐子。 curl -d“” 'localhost:8090/contexts/test-context?num-cpu-cores = 4 & memory-per-node = 512m' OK⏎curl 'localhost:8090/jobs?appName = test & classPath = spark.jobserver.WordCountExample & context = test-context & sync = true' -d'{dependent-jar-uris = [“file:///myjars/deps01.jar”,“file:/// myjars /将会被加载并提供给Spark使用,并且可以在Spark中使用。驱动程序& 执行程序。

“file:/// myjars /”目录是SJS节点的JAR目录还是一些自定义目录?

我有一个Windows机器上的客户端和一个Linux机器上的Spark JobServer。接下来,我将一个JAR上传到SJS节点。 SJS节点将Jar放在某个地方。然后,当我打电话开始Job并设置'dependent-jar-uris'时,SJS节点将找到我以前上传的JAR并运行作业:

“dependent-jar-uris”设置为“file :///tmp/spark-jobserver/filedao/data/simpleJobxxxxxx.jar”

这工作得很好,但我不得不手动去SJS节点周围搜索找到这个位置(例如文件:/// TMP /spark-jobserver/filedao/data/simpleJobxxxxxx.jar),然后将其添加到我未来的请求中以开始工作。

而是,如何从客户端创建一个REST调用,以获取Spark JobServer在上传这些jar时的路径,以便我可以在我的依赖中正确设置file:///路径-jar-uris'属性动态?

回答

0

我不认为使用“POST/jars”上传的罐子可以在依赖罐子里使用。由于您正在上传罐子,因此您已经知道本地路径。只要使用它。

+0

在我的情况下,作业执行客户端没有在客户端本地引用JAR。它期望它们已经在服务器上。如果Spark JobServer允许通过REST API单独上传JAR,那么如果不通过“dependent-jar-uris”,它们以后如何引用? – Jason

+0

POST /罐子不用于上传相关的罐子。它用于上传Spark应用程序jar。我建议你复制你所有的依赖jar到spark job server linux box并将它们添加到spark jobsever conf本身的dependent-jar-uris中。 – noorul