【问题标题】:Application kill of spark on yarn via Zeppelin通过 Zeppelin 应用程序杀死纱线上的火花
【发布时间】:2017-01-27 09:22:09
【问题描述】:

是否有推荐的方法从 Zeppelin 内部(使用 scala)应用程序杀死纱线上的火花?在火花壳中我使用

:q 

它干净地退出了外壳,杀死了纱线上的应用程序,并取消了我正在使用的核心。

我发现我可以使用

sys.exit

它确实成功地杀死了纱线上的应用程序,但它也会抛出一个错误,并且如果我想启动一个新会话,它需要我重新启动解释器。如果我正在使用同一解释器的单独实例主动运行另一个笔记本,那么 sys.exit 并不理想,因为在我完成第二个笔记本中的工作之前,我无法重新启动解释器。

【问题讨论】:

  • 看起来这个问题没有一个简单的答案。如果我可以添加后续操作,是否有人理解为什么 :q 不起作用或知道如何使像 :q 这样的冒号命令在 zeppelin 中起作用?它们是否以某种 zeppelin 无法复制的方式特定于 REPL。

标签: scala apache-spark apache-zeppelin


【解决方案1】:

您可能想要转到 YARN UI 并在其中终止应用程序。它应该在您的主名称节点的端口 8088 上运行。但是,这也需要重新启动服务。

不过,理想情况下,您让 YARN 处理这个问题。仅仅因为 Zeppelin 将使用指定数量的执行程序和内核启动 Spark,并不意味着这些是按照您的想法“保留”的。这些核心仍然可用于其他容器。 YARN 很好地管理了这些资源。除非您的集群有限和/或正在做一些需要从 YARN 进行最后一滴资源管理的事情,否则您应该离开 Zeppelin 单独使用的 Spark 应用程序。

【讨论】:

  • 也许我们在集群上设置了不同的 YARN。如果我有一个在 YARN 上运行的应用程序并保留了 x 个内核,那么这些内核对其他用户不可用。如果足够多的用户运行应用程序,我们集群上的所有内核都被保留,那么任何其他应用程序都必须等到内核释放后才能运行她的应用程序。通过 UI 终止应用程序实际上与 yarn application -kill 相同,正如您所指出的那样,它会起作用,但并不比 sys.exit 好。
【解决方案2】:

您可以尝试重新启动 Zeppelin Spark 解释器(可以在解释器设置页面中完成)。这应该会杀死 Zeppelin 应用程序,但只会在您再次尝试执行段落时重新启动解释器(以及 Zeppelin 应用程序)。

【讨论】:

  • 感谢您的回答!挑战在于我正在寻找更像 sys.exit 的东西,它会在执行段落时杀死纱线应用程序。当我在一天结束时开始运行一些长时间运行的段落然后想要在这些段落完成后终止我的 yarn 应用程序时,这很有帮助。此外,正如我上面提到的,sys.exit 的唯一缺点是我必须在使用它后重新启动解释器,当我使用同一个解释器运行多个笔记本时,我试图避免这种情况
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
  • 2019-11-13
  • 1970-01-01
  • 2016-10-11
相关资源
最近更新 更多