gpt4 book ai didi

apache-spark - 部署和运行定期 Spark 作业的最佳实践

转载 作者:行者123 更新时间:2023-12-04 04:16:09 25 4
gpt4 key购买 nike

我有许多 spark 批处理作业,每个作业都需要每 x 小时运行一次。我确信这一定是一个常见问题,但互联网上似乎很少有关于设置此问题的最佳实践。我目前的设置如下:

  • 构建系统 (sbt) 构建一个 tar.gz,其中包含一个 fat jar + 一个将调用 spark-submit 的脚本。
  • 一旦测试通过,CI 系统 (Jenkins) 会将 tar.gz 复制到 hdfs。
  • 我设置了chronos将 tar.gz 解压到本地文件系统并运行提交给 spark 的脚本的作业。

  • 这个设置工作得相当好,但我不喜欢第 3 步的某些方面。具体来说:
  • 我需要一个单独的脚本(由 chronos 执行)从 hdfs 复制、解包并运行 spark-submit 任务。据我所知,chrons 无法从 hdfs 运行脚本,所以我必须在每个 mesos worker 上都有这个脚本的副本,这使得部署更加复杂,如果一切都只存在于 hdfs 上。
  • 我有一种感觉,我有太多的事件部件。例如,我想知道是否可以创建一个可以提交自身的可执行 jar(args 将是 spark master 和 main 类),在这种情况下,我会取消至少一个包装脚本。不幸的是,我还没有找到这样做的好方法

  • 由于这是每个人都面临的问题,我想知道是否有人可以提供更好的解决方案。

    最佳答案

    要下载和解压存档,您可以使用 Mesos fetcher通过设置 uris 字段在 Chronos 作业配置中指定它。
    要在执行器端执行相同的过程,您可以在默认 Spark conf 中设置 spark.executor.uri 参数

    关于apache-spark - 部署和运行定期 Spark 作业的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38465285/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com