2017-02-07 5 views
0

J'ai un problème commun où je démarre un AWS EMR Cluster et connectez-vous via SSH puis exécutez spark-shell pour tester du code Spark et parfois je perds ma connexion Internet et Putty jette une erreur que la connexion a été perdue.Comment libérer des ressources sur le cluster AWS EMR?

Mais il semble que les processus liés à Spark fonctionnent toujours. Quand je vous reconnecter au serveur et exécuter spark-shell à nouveau, je reçois beaucoup de ces erreurs:

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. 

recherche sur Google cette erreur suggère qu'il ya des problèmes avec la mémoire allouée, mais comme je suis en utilisant de petits nœuds sur un cluster de test, Je ne veux même pas allouer plus de mémoire, je veux juste libérer les ressources utilisées un redémarrage le spark-shell, mais je ne vois aucun processus "Spark" en cours d'exécution.

Comment puis-je résoudre ce problème facilement? Y at-il un autre processus que je devrais essayer de fermer/redémarrer, comme hadoop, mapred, fil, etc? Je ne voudrais pas démarrer un nouveau cluster chaque fois que j'en fais l'expérience.

Répondre

1

vous pouvez utiliser le api de fil pour que .. Après SSH-ing à maîtriser, exécutez cette

yarn application -list 

pour voir si les applications en cours d'exécution. s'il y a vous pouvez utiliser cette commande pour les tuer:

yarn application -kill <application id> 

vous pouvez également utiliser l'interface Web de gestion des ressources pour faire la même chose. (disponible en tant que lien sur la première page de la page EMR du cluster).

BTW vous pouvez utiliser Zeppelin pour exécuter les mêmes choses que sur Spark-shell sans vous soucier de vous déconnecter .. il est disponible sur EMR (vous devez le sélectionner comme l'une des applications lors de la configuration d'un cluster).

il faut un certain temps apprendre à utiliser et à configurer correctement mais pourrait vous aider ..

+0

Eh bien, oui, il y avait des applications actives. J'ai essayé avec la commande kill et aussi avec le Resoure Manager. J'ai également vérifié que tous les processus Spark avaient été supprimés et j'ai arrêté et redémarré le gestionnaire de ressources avec cette commande: 'sudo/sbin/stop hadoop-yarn-resourcemanager'. Mais j'ai toujours l'erreur "Container marked as failed". –

+0

donc je suppose que je n'ai pas entièrement compris votre problème .. êtes-vous en train de dire qu'il y a des applications étincelles fonctionnant sur cluster ou non? BTW pas sûr que vous devriez arrêter et démarrer le gestionnaire de ressources .. si vous avez fait un kill, vous pouvez exécuter à nouveau l'application -liste pour s'assurer qu'ils ont été tués –

+0

Oui, ils étaient en cours d'exécution et je les ai tué. J'ai vérifié la liste encore et aucun fonctionnait. Je me suis également assuré que tous les processus Spark étaient fermés. Mais encore, réessayer de démarrer 'spark-shell' a jeté ces exceptions mentionnées ci-dessus. Redémarrer le gestionnaire de ressources était une solution suggérée lorsque je googlé le problème lorsque le démarrage du pare-étincelles jetait sans cesse le message suivant: 'Client INFO: rapport d'application pour l'application_1462362812913_0001 (état: ACCEPTÉ)'. –