【问题标题】:Spark Job Keep on RunningSpark 作业继续运行
【发布时间】:2016-05-13 05:33:26
【问题描述】:

我已经在 ambari-server 中提交了我的 spark 作业 使用以下命令..

  ./spark-submit --class  customer.core.classname --master yarn --numexecutors 2 --driver-memory 2g --executor-memory 2g --executor-cores 1 /home/hdfs/Test/classname-0.0.1-SNAPSHOT-SNAPSHOT.jar newdata host:6667

它工作正常......

但是它怎么能一直运行呢,就像我们关闭命令提示符或者试图杀死作业一样,它必须一直运行。

感谢任何帮助。

【问题讨论】:

    标签: shell apache-spark


    【解决方案1】:

    您可以通过多种方式实现这一目标

    1)您可以使用nohup在后台运行火花提交驱动程序 例如:

    nohup  ./spark-submit --class  customer.core.classname \
      --master yarn --numexecutors 2 \
      --driver-memory 2g --executor-memory 2g --executor-cores 1 \
      /home/hdfs/Test/classname-0.0.1-SNAPSHOT-SNAPSHOT.jar \
      newdata host:6667 &
    

    2)在部署模式下作为集群运行,以便驱动进程运行在不同的节点上。

    【讨论】:

    • 哦!所以如果我是正确的,如果部署模式是集群并且使用 nohup 驱动程序将运行到我集群中的其他机器上但是如果部署模式是客户端并且使用 nohup 驱动程序将在我提交的同一机器上运行但只是在后台
    • 答案有点不清楚。在 --deploy-mode 集群中运行时,您可以安全地通过 ctrl+c 退出 spark-submit。即使您退出,火花作业仍将继续运行。不要担心会打印出“ShutdownHook”消息。它实际上并没有停止你的工作。
    【解决方案2】:

    我认为这个问题更多是关于shell而不是spark,

    为了保持应用程序运行,即使在关闭 shell 时,也应在命令末尾添加&。所以你的spark-submit 命令将是(只需将& 添加到末尾)

    ./spark-submit --class  customer.core.classname --master yarn --numexecutors 2 --driver-memory 2g --executor-memory 2g --executor-cores 1 /home/hdfs/Test/classname-0.0.1-SNAPSHOT-SNAPSHOT.jar newdata host:6667 &
    [1] 28299
    

    你仍然会得到日志和输出消息,除非你重定向它们

    【讨论】:

    • 然后用jobs -l你可以检查哪个PID有后台程序,以及它的状态(除非你关闭了启动命令的shell)。
    【解决方案3】:

    希望我能理解这个问题。通常,如果您希望进程继续运行,您可以创建一个将在后台运行的进程文件。在您的情况下,该作业将继续运行,直到您使用 yarn -kill 专门杀死它。因此,即使您终止了 spark 提交,它也会继续运行,因为 yarn 在提交后对其进行管理。

    【讨论】:

      【解决方案4】:

      警告:我没有对此进行测试。但是,执行您所描述的更好的方法可能是使用以下设置:

      --deploy-mode cluster \
      --conf spark.yarn.submit.waitAppCompletion=false
      

      在这里找到: How to exit spark-submit after the submission

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多