Estou tendo problemas estranhos com o Namenode Hadoop Namenode e Hadoop. Nosso cluster HDFS é executado sem problemas na maioria das vezes. Mas de vez em quando, o Namenode Primário congela (colidindo com todo o cluster) ou o Namenode Secundário congela e pára de fazer checkpoints.
Sempre que isso acontece, tento reiniciar o serviço de interrupção, que falha porque a porta ainda está bloqueada:
# service hadoop-namenode restart
* Stopping Hadoop namenode:
no namenode to stop
* Starting Hadoop namenode:
starting namenode, logging to /var/log/hadoop/hadoop-hdfs-namenode-HOST.out
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 26100; nested exception is:
java.net.BindException: Address already in use
No entanto, verificando a saída de ps auxw
, nenhum Namenode está sendo executado.
Verificando qual processo está bloqueando a porta:
# netstat -tulpen | grep 26100
tcp 0 0 0.0.0.0:26100 0.0.0.0:* LISTEN 6001 20067 -
que não é de todo útil. Diz, a porta está em uso, mas o processo é -
.
ss
não é mais útil:
# ss -apne | grep 26100
tcp LISTEN 34 50 *:26100 *:* uid:6001 ino:20067 sk:000015c1 <->
tcp CLOSE-WAIT 224 0 127.0.0.1:26100 127.0.0.1:56770 ino:0 sk:00000527 -->
...
tcp CLOSE-WAIT 13 0 127.0.0.1:26100 127.0.0.1:56762 ino:0 sk:0000078f -->
tcp CLOSE-WAIT 17 0 127.0.0.1:26100 127.0.0.1:56772 ino:0 sk:000007b1 -->
A única coisa que ambos os comandos me dizem é que o processo é de propriedade do UID 6001, que é o usuário hdfs
. Verificando ps auxw
para qualquer processo pertencente a hdfs
, vejo que há um processo de zumbi:
hdfs 4947 4.8 0.0 0 0 ? Zl Feb23 435:50 [java] <defunct>
Portanto, por qualquer motivo, reiniciar o serviço Namenode deixa um zumbi que continua bloqueando a porta. Infelizmente, não há como me livrar desse processo porque o único processo pai é init
:
# pstree -ps 4947
init(1)───java(4947)───{java}(9957)
A única solução alternativa é reiniciar o sistema operacional (fora de questão) ou usar temporariamente outra porta do Namenode (ou Seconden Namenode).
Você tem alguma idéia de qual é o motivo desse bug estranho? Não encontrei nenhuma sugestão em dmesg
.
O cluster tem 130 nós, cada um executando o Ubuntu 14.04 Trusty com o Kernel 4.2.0-30-generic # 35 ~ 14.04.1-Ubuntu. A versão do Hadoop é 2.7.1.