Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit les éventuelles solutions à appliquer pour résoudre des problèmes en lien avec Zookeeper dans des clusters Azure HDInsight.
Symptômes
- Les deux gestionnaires des ressources passent en mode veille.
- Les deux nœuds de noms sont en attente
- Des travaux Spark, Hive et Yarn ou des requêtes Hive échouent en raison d’échecs de connexion de Zookeeper.
- Le démarrage des démons LLAP échoue sur des clusters sécurisés Hive interactifs ou Spark.
Exemple de journal
Un message d’erreur semblable au journaux Yarn (/var/log/hadoop-yarn/yarn/yarn-yarn*.log sur les nœuds principaux) peut s’afficher :
2020-05-05 03:17:18.3916720|Lost contact with Zookeeper. Transitioning to standby in 10000 ms if connection is not reestablished.
Message
2020-05-05 03:17:07.7924490|Received RMFatalEvent of type STATE_STORE_FENCED, caused by org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth
...
2020-05-05 03:17:08.3890350|State store operation failed
2020-05-05 03:17:08.3890350|Transitioning to standby state
Problèmes connexes
- Des services de haute disponibilité tels que Yarn, Noms de nœuds et Livy peuvent s’arrêter pour de nombreuses raisons.
- Vérifier dans les journaux que cela est lié à des connexions de Zookeeper
- Vérifier que le problème est récurrent (ne pas utiliser ces solutions dans des cas isolés)
- Des travaux peuvent échouer temporairement en raison de problèmes de connexion de Zookeeper.
Causes courantes d’échec de Zookeeper
- Utilisation élevée de l’UC sur les serveurs Zookeeper :
- Dans l’interface utilisateur Ambari, si vous constatez une utilisation intensive, proche de 100 %, de l’UC sur les serveurs Zookeeper, des sessions Zookeeper ouvertes pendant cette période peuvent expirer.
- Les clients Zookeeper signalent des délais d’expiration fréquents :
- Dans les journaux pour Resource Manager, les noms de nœuds et d’autres indiquent de fréquents délais d’expiration de connexion des clients
- Cela peut entraîner une perte de quorum, des basculements fréquents et d’autres problèmes.
Vérifier l’état de Zookeeper
- Recherchez les serveurs Zookeeper dans le fichier /etc/hosts ou dans l’interface utilisateur d’Ambari.
- Exécutez la commande suivante :
echo stat | nc <ZOOKEEPER_HOST_IP> 2181
(ou 2182).- Le port 2181 est l’instance Apache Zookeeper.
- Le port 2182 est utilisé par le Zookeeper HDInsight (pour fournir une haute disponibilité pour des services qui n’offrent aucune haute disponibilité en mode natif)
- Si la commande n’affiche aucune sortie, cela signifie que les serveurs Zookeeper ne sont pas en cours d’exécution
- Si les serveurs sont en cours d’exécution, le résultat inclut des statistiques de connexions clientes et d’autres statistiques
Zookeeper version: 3.4.6-8--1, built on 12/05/2019 12:55 GMT
Clients:
/10.2.0.57:50988[1](queued=0,recved=715,sent=715)
/10.2.0.57:46632[1](queued=0,recved=138340,sent=138347)
/10.2.0.34:14688[1](queued=0,recved=264653,sent=353420)
/10.2.0.52:49680[1](queued=0,recved=134812,sent=134814)
/10.2.0.57:50614[1](queued=0,recved=19812,sent=19812)
/10.2.0.56:35034[1](queued=0,recved=2586,sent=2586)
/10.2.0.52:63982[1](queued=0,recved=72215,sent=72217)
/10.2.0.57:53024[1](queued=0,recved=19805,sent=19805)
/10.2.0.57:45126[1](queued=0,recved=19621,sent=19621)
/10.2.0.56:41270[1](queued=0,recved=1348743,sent=1348788)
/10.2.0.53:59097[1](queued=0,recved=72215,sent=72217)
/10.2.0.56:41088[1](queued=0,recved=788,sent=802)
/10.2.0.34:10246[1](queued=0,recved=19575,sent=19575)
/10.2.0.56:40944[1](queued=0,recved=717,sent=717)
/10.2.0.57:45466[1](queued=0,recved=19861,sent=19861)
/10.2.0.57:59634[0](queued=0,recved=1,sent=0)
/10.2.0.34:14704[1](queued=0,recved=264622,sent=353355)
/10.2.0.57:42244[1](queued=0,recved=49245,sent=49248)
Latency min/avg/max: 0/3/14865
Received: 238606078
Sent: 239139381
Connections: 18
Outstanding: 0
Zxid: 0x1004f99be
Mode: follower
Node count: 133212
Pics de charge du processeur toutes les heures
- Connectez-vous au serveur Zookeeper et vérifiez le fichier /etc/crontab.
- Si des tâches horaires sont en cours d’exécution à ce moment-là, randomisez l’heure de début sur différents serveurs Zookeeper.
Purge d’anciens instantanés
- Des Zookeepers sont configurés pour purger automatiquement d’anciens instantanés.
- Par défaut, les 30 derniers instantanés sont conservés.
- Le nombre d’instantanés conservés et contrôlé par la clé de configuration
autopurge.snapRetainCount
. Cette propriété se trouve dans les fichiers suivants :/etc/zookeeper/conf/zoo.cfg
pour le Zookeeper Hadoop./etc/hdinsight-zookeeper/conf/zoo.cfg
pour le Zookeeper HDInsight.
- Affectez la valeur 3 à
autopurge.snapRetainCount
et redémarrez les serveurs Zookeeper.- La configuration du Zookeeper Hadoop peut être mise à jour et le service redémarré via Ambari.
- Arrêtez et redémarrez manuellement le Zookeeper HDInsight.
sudo lsof -i :2182
vous indique l’ID de processus à tuersudo python /opt/startup_scripts/startup_hdinsight_zookeeper.py
- Ne pas purger des instantanés manuellement : la suppression manuelle d’instantanés peut entraîner une perte de données
CancelledKeyException dans le journal du serveur Zookeeper ne nécessite pas de nettoyage d’instantané.
- Cette exception apparaît sur les serveurs Zookeeper (fichiers /var/log/zookeeper/zookeeper-zookeeper-* ou /var/log/hdinsight-zookeeper/zookeeper*)
- Cette exception signifie généralement que le client n’est plus actif et que le serveur est incapable d’envoyer un message.
- Cette exception indique également que le client Zookeeper met fin aux sessions prématurément.
- Recherchez les autres symptômes décrits dans ce document.
Étapes suivantes
Si votre problème ne figure pas dans cet article ou si vous ne parvenez pas à le résoudre, utilisez un des canaux suivants pour obtenir de l’aide :
- Obtenez des réponses de la part d’experts Azure en faisant appel au Support de la communauté Azure.
- Connectez-vous à @AzureSupport, le compte Microsoft Azure officiel pour améliorer l’expérience client. Connexion de la communauté Azure aux ressources appropriées : réponses, support technique et experts.
- Si vous avez besoin d’une aide supplémentaire, vous pouvez envoyer une requête de support à partir du Portail Microsoft Azure. Sélectionnez Support dans la barre de menus, ou ouvrez le hub Aide + Support. Pour plus d’informations, consultez Création d’une demande de support Azure. L’accès au support relatif à la gestion et à la facturation des abonnements est inclus avec votre abonnement Microsoft Azure. En outre, le support technique est fourni avec l’un des plans de support Azure.