我有一个常见的问题,我启动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等吗?每次遇到这种情况我都不想开始新的集群。
答案 0 :(得分:1)
你可以使用纱线api .. 在SSH到master之后,运行此
yarn application -list
查看应用程序是否正在运行。 如果有,你可以用这个命令来杀死它们:
yarn application -kill <application id>
你也可以使用资源管理器web ui做同样的事情。 (作为群集EMR页面首页上的链接提供)。
顺便说一句,你可以使用Zeppelin来运行你在Spark-shell上运行的相同东西而不用担心断开连接..它可以在EMR上使用(你需要在设置集群时选择它作为其中一个应用程序)。
学习如何正确使用和配置需要一些时间,但可能对您有帮助..