J'ai configuré un cluster à 2 nœuds avec hadoop et installé hbase. Il fonctionnait correctement et j'ai exécuté quelques tâches de base de la carte pour réduire les tâches dans hadoop et j'ai pu créer et lister certaines tables dans hbase aussi. Cependant j'ai peu de données dans hdfs/hbase et il n'y avait pas de travail en cours d'exécution. Après un certain temps j'ai commencé à obtenir "Java.net.Socket: Too many open files"
erreur dans les journaux hbase.Pourquoi trop de fichiers ouverts dans Hbase
J'ai cherché des solutions mais il y a surtout des réponses à propos de l'augmentation de la limite. Cependant, je suis curieux de savoir pourquoi il y a trop de fichiers ouverts. Ce cluster n'est utilisé par aucun autre programme et je n'ai exécuté aucun travail autre que de simples tâches de réduction de map dans les didacticiels. Pourquoi pourrait-il en être ainsi?
Pourquoi?
EDIT
Après Andrzej suggéré, j'ai couru cette commande (lsof | grep java
) et je l'ai constaté qu'il ya beaucoup de connexion dans différents ports qui sont en attente d'être fermé. Ceci est juste quelques ligne de la sortie de la commande
java 29872 hadoop 151u IPv6 158476883 0t0 TCP os231.myIP:44712->os231.myIP:50010 (CLOSE_WAIT)
java 29872 hadoop 152u IPv6 158476885 0t0 TCP os231.myIP:35214->os233.myIP:50010 (CLOSE_WAIT)
java 29872 hadoop 153u IPv6 158476886 0t0 TCP os231.myIP:39899->os232.myIP:50010 (CLOSE_WAIT)
java 29872 hadoop 155u IPv6 158476892 0t0 TCP os231.myIP:44717->os231.myIP:50010 (CLOSE_WAIT)
java 29872 hadoop 156u IPv6 158476895 0t0 TCP os231.myIP:44718->os231.myIP:50010 (CLOSE_WAIT)
Maintenant, la question est, pourquoi ne pas fermer automatiquement si la connexion est maintenant inutile? S'ils ne sont pas automatiquement interrompus, est-il possible de les fermer avec un script crontab ou quelque chose de similaire?
Merci
Vous avez une limite dans le noyau, une limite dans SELinux et limitez les fichiers ouverts pour le service. Voir https://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/ ou https://naveensnayak.wordpress.com/2015/09/17/increasing-file -descriptors-et-open-files-limit-centos-7/Cela dépend de votre système d'exploitation. –
Je connais la limite. Mais je me demande pourquoi il y a eu autant de dossiers ouverts. augmenter la limite peut être une solution temporaire. Y a-t-il des fichiers ouverts qui auraient dû être fermés, etc.? –
Si vous utilisez linux appelez 'lsof | grep java'. –