【问题标题】:Spark 2.4.0 submit in cluster mode - why is REST submission server requiredSpark 2.4.0 以集群模式提交 - 为什么需要 REST 提交服务器
【发布时间】:2019-03-22 16:52:37
【问题描述】:

我有一个 独立 spark 2.4.0 集群,我需要将应用程序部署到该集群,并传递一些额外的 java 选项(驱动程序和执行程序)。 为此,我使用spark.driver.extraJavaOptionsspark.executor.extraJavaOptions 描述here。 它在客户端模式下工作得很好,但是在集群模式下存在问题 - 变量没有传递给驱动程序(对于执行程序来说它仍然很好)。 我也面临spark.driver.extraClassPath 的类似问题,所以我想问题更普遍。

无论如何,我已经设法找到了解决方案:

  1. 我们需要使用 REST 提交服务器进行提交(通常运行在 6066 端口,即 spark://localhost:6066)
  2. 为了实现上述目标,我们需要使用属性 spark.master.rest.enabled 显式启用 REST 提交(从 2.4.0 开始,默认情况下为 false,在旧版本中为 true - 请参阅 PR

问题:

  1. 在使用集群模式以使 spark.driver.extraJavaOptions(和类似)选项按预期工作时,我无法在文档中找到我们实际上需要通过 REST 部署。 Official doc 没有提及。它是否记录在其他任何地方,还是我遗漏了一些明显的东西?

  2. 我想在集群模式下提交是一个很常见的用例。如果正确执行此操作需要使用 REST 提交服务器(如果我错了请纠正我)为什么默认禁用它?

  3. 当我尝试以常规方式(7077 端口)提交并将 spark.master.rest.enabled 设置为 true 时,我会在日志中获得以下信息:

    警告:主端点spark://localhost:7077 不是 REST 服务器。改用legacy提交网关。

据此判断,我会说通常不通过 REST 提交是遗留问题,但同样 - 它没有在任何地方记录,为什么他们会默认禁用 REST 提交(请参阅我的第二个问题)?

  1. 当我尝试通过 REST 在客户端模式下部署时,它总是失败并出现错误 StandaloneAppClient$ClientEndpoint:87 - Failed to connect to master localhost:6066 这是否意味着我们在更改部署模式时总是必须切换端口?有什么意义,为什么我们不能有一种方法来部署我们的应用?

【问题讨论】:

    标签: apache-spark spark-submit


    【解决方案1】:

    我远不是外籍人士,我还没有使用 2.4,但我会分享我所知道的。

    我不记得类路径有问题,但它并没有说太多。我主要使用其余 API 和集群模式。 只是为了确定..罐子以“local:/”开头,对吗?

    AFAIK 剩下的就是“Spark 隐藏 API”,它可以解释“无法在文档中找到”。

    在我看来,其余的 API 没有以任何方式得到保护,这可能是它被隐藏的原因?但我很高兴听到至少现在默认禁用它,我认为它在早期版本中是默认启用的。

    “改为回退到旧提交网关”敲响了警钟,所以我认为没问题(额外的类路径没有问题)

    我认为rest API 不支持客户端模式。怎么可能? Jetty 在处理提交请求的主节点上运行。我不明白它现在如何在调用主机上启动驱动程序进程?

    至于classpath中缺少的jar,你试过“spark.jars”吗?

    如果一切都失败了...试试 uber jar :-)

    【讨论】:

    • 感谢您的反馈。请注意,问题不仅在于类路径,还在于我们想要传递给驱动程序的extraJavaOptions(即-Dfoo=BAR)。这既不能用 uber jar 也不能用 spark.jars 解决(我也试过)。一件更有趣的事情:ibm doc 明确指出我们应该在集群模式下部署时使用 REST。
    【解决方案2】:

    看起来这是SPARK Jira中报告的错误

    PR with the fix 已提出,希望能尽快合并

    【讨论】:

      猜你喜欢
      • 2016-11-06
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多