【问题标题】:How do I query Spark JobServer and find where it stores my Jars?如何查询 Spark JobServer 并找到它存储我的罐子的位置?
【发布时间】:2016-08-13 01:02:23
【问题描述】:

我正在尝试遵循此文档:

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

文档中列出的选项 2 说:

dependent-jar-uris 也可以在作业配置参数中使用 提交作业时。在临时上下文中,这具有相同的效果 作为dependent-jar-uris 上下文配置参数。在一个持久的 context 将为当前作业加载 jar,然后为每个 将在持久上下文上执行的作业。卷曲 -d "" 'localhost:8090/contexts/test-context?num-cpu-cores=4&memory-per-node=512m' 好的⏎卷曲 'localhost:8090/jobs?appName=test&classPath=spark.jobserver.WordCountExample&context=test-context&sync=true' -d '{dependent-jar-uris = ["file:///myjars/deps01.jar", "file:///myjars/deps02.jar"], input.string = "a b c a b see" }' jars /myjars/deps01.jar & /myjars/deps02.jar(仅存在于 SJS node) 将被加载并提供给 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 节点以找到此位置(例如 file:///tmp/spark-jobserver/filedao/data/simpleJobxxxxxx.jar),然后将其添加到我的未来请求开始工作。

相反,我如何从客户端进行 REST 调用,以便在我上传它们时获取 Spark JobServer 放置我的 jar 的路径,以便我可以在我的 ' 中正确设置 file:/// 路径依赖jar uris 的属性是动态的?

【问题讨论】:

    标签: spark-jobserver


    【解决方案1】:

    我认为使用“POST /jars”上传的 jars 不能在dependent-jar-uris 中使用。由于您正在上传 jar,因此您已经知道本地路径。就用那个吧。

    【讨论】:

    • 在我的例子中,作业执行客户端没有对客户端本地 JAR 的引用。它希望它们已经在服务器上。如果 Spark JobServer 允许通过 REST api 单独上传 jar,那么如果不是通过“dependent-jar-uris”,那么以后如何引用它们?
    • POST /jars 不用于上传依赖的 jars。它用于上传 spark app jar。我建议您将所有依赖 jar 复制到 spark job server linux box 并将它们添加到 spark jobsever conf 本身中的dependent-jar-uris。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 2012-09-06
    相关资源
    最近更新 更多