如何释放AWS EMR集群上的资源?

时间:2017-02-07 11:26:58

标签: apache-spark yarn emr amazon-emr elastic-map-reduce

我有一个常见的问题,我启动AWS EMR群集并通过SSH登录然后运行spark-shell来测试一些Spark代码,有时我丢失了我的互联网连接而Putty抛出连接丢失的错误。

但似乎Spark相关流程仍在运行。当我重新连接到服务器并再次运行spark-shell时,我收到了很多错误:

17/02/07 11:15:50 WARN YarnSchedulerBackend$YarnSchedulerEndpoint: Container marked as failed: container_1486465722770_0002_01_000003 on host: ip-172-31-0-217.eu-west-1.compute.internal. Exit status: 1. Diagnostics: Exception from container-launch.

谷歌搜索此错误表明分配内存存在问题,但由于我在测试群集上使用小节点,我甚至不想分配更多内存,我只想释放使用的资源重启{ {1}},但我没有看到任何“Spark”进程正在运行。

我该如何轻松解决这个问题?还有其他一些我应该尝试关闭/重启的过程,比如hadoop,mapred,yarn等吗?每次遇到这种情况我都不想开始新的集群。

1 个答案:

答案 0 :(得分:1)

你可以使用纱线api .. 在SSH到master之后,运行此

yarn application -list

查看应用程序是否正在运行。 如果有,你可以用这个命令来杀死它们:

yarn application -kill <application id>

你也可以使用资源管理器web ui做同样的事情。 (作为群集EMR页面首页上的链接提供)。

顺便说一句,你可以使用Zeppelin来运行你在Spark-shell上运行的相同东西而不用担心断开连接..它可以在EMR上使用(你需要在设置集群时选择它作为其中一个应用程序)。

学习如何正确使用和配置需要一些时间,但可能对您有帮助..