Résoudre les problèmes liés aux actions de script dans Azure HDInsight
Cet article décrit les éventuelles solutions à appliquer pour résoudre les problèmes rencontrés lors d’interactions avec des clusters Azure HDInsight.
Consultation des journaux
Vous pouvez utiliser l’interface utilisateur web d’Apache Ambari pour afficher les informations enregistrées par des actions de script. Si le script échoue lors de la création du cluster, les journaux se trouvent dans le compte de stockage de cluster par défaut. Cette section fournit des informations sur la façon de récupérer les journaux d’activité à l’aide de ces deux options.
Interface utilisateur web d’Apache Ambari
Dans un navigateur web, accédez à
https://CLUSTERNAME.azurehdinsight.net
, oùCLUSTERNAME
est le nom de votre cluster.Dans la barre située en haut de la page, sélectionnez l’entrée ops. Une liste affiche les opérations en cours et précédentes effectuées sur le cluster via Ambari.
Recherchez les entrées comportant run_customscriptaction dans la colonne Opérations. Ces entrées sont créées lors de l’exécution des actions de script.
Pour voir les sorties STDOUT et STDERR, sélectionnez l’entrée run\customscriptaction et suivez les différents liens. Une sortie est générée à chaque exécution du script. Elle contient des informations potentiellement utiles.
Compte de stockage par défaut
Si la création du cluster échoue en raison d’une erreur de script, les journaux d’activité sont conservés dans le compte de stockage du cluster.
Les journaux d’activité de stockage sont disponibles dans
\STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE
.Sous ce répertoire, les journaux d’activité sont organisés séparément pour le nœud principal, le nœud worker et le nœud zookeeper. Regardez les exemples suivants :
Nœud principal :
<ACTIVE-HEADNODE-NAME>.cloudapp.net
Nœud worker :
<ACTIVE-WORKERNODE-NAME>.cloudapp.net
Nœud zookeeper :
<ACTIVE-ZOOKEEPERNODE-NAME>.cloudapp.net
Toutes les valeurs stdout et stderr de l’hôte correspondant sont chargées vers le compte de stockage. Il existe un fichier output-*.txt et un fichier errors-*.txt pour chaque action de script. Le fichier output-*.txt contient des informations sur l’URI du script exécuté sur l’ordinateur hôte. Le texte suivant constitue un exemple de ces informations :
'Start downloading script locally: ', u'https://hdiconfigactions.blob.core.windows.net/linuxrconfigactionv01/r-installer-v01.sh'
Vous pouvez créer plusieurs fois un cluster d’action de script portant le même nom. Dans ce cas, vous pouvez différencier les journaux d’activité correspondants par le nom de dossier DATE. Par exemple, la structure de dossiers d’un cluster, mycluster, créé à différentes dates ressemble aux entrées de journaux suivantes :
\STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-04
\STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-05
Si vous créez un cluster d’action de script avec le même nom le même jour, vous pouvez utiliser le préfixe unique pour identifier les fichiers journaux correspondants.
Si vous créez un cluster vers minuit (0 h 00), il est possible que les fichiers journaux s’étendent sur deux jours. Dans ce cas, vous voyez deux dossiers de date différente pour le même cluster.
Le chargement des fichiers journaux vers le conteneur par défaut peut prendre jusqu’à cinq minutes, en particulier si les clusters sont de grande taille. Par conséquent, si vous souhaitez accéder aux journaux d’activité, vous ne devez pas immédiatement supprimer le cluster en cas d’échec d’une action de script.
Agent de surveillance Ambari
Ne changez pas le mot de passe de l’agent de surveillance Ambari (hdinsightwatchdog) sur votre cluster HDInsight Linux. Une modification de mot de passe annule la possibilité d’exécuter de nouvelles actions de script sur le cluster HDInsight.
Impossible d’importer le nom BlobService
Symptômes. L’action de script échoue. Un texte semblable à l’erreur suivante s’affiche lorsque vous observez l’opération dans Ambari :
Traceback (most recent call list):
File "/var/lib/ambari-agent/cache/custom_actions/scripts/run_customscriptaction.py", line 21, in <module>
from azure.storage.blob import BlobService
ImportError: cannot import name BlobService
Cause. Cette erreur se produit si vous mettez à niveau le client Stockage Azure Python qui est inclus dans le cluster HDInsight. HDInsight attend le client de stockage Azure 0.20.0.
Résolution. Pour résoudre cette erreur, connectez-vous manuellement à chaque nœud de cluster avec ssh
. Exécutez la commande suivante pour réinstaller la version correcte du client de stockage :
sudo pip install azure-storage==0.20.0
Pour plus d’informations sur la connexion au cluster via SSH, consultez Se connecter à HDInsight (Apache Hadoop) avec SSH.
L’historique n’affiche pas les scripts utilisés pendant la création du cluster
Si votre cluster a été créé avant le 15 mars 2016, il est possible que l’historique des actions de script n’affiche pas de script. Le redimensionnement du cluster provoque l’affichage des scripts dans l’historique des actions de script.
Deux exceptions :
Votre cluster a été créé avant le 1er septembre 2015. Il s’agit de la date à laquelle les actions de script ont été introduites. Tout cluster créé avant cette date n’aurait pas pu utiliser les actions de script pour la création du cluster.
Vous avez utilisé plusieurs actions de script durant la création du cluster. Ou vous avez donné le même nom à plusieurs scripts, ou utilisé le même nom et le même URI, mais des paramètres différents pour plusieurs scripts. Dans tous ces cas, l’erreur suivante s’affiche :
No new script actions can be run on this cluster because of conflicting script names in existing scripts. Script names provided at cluster creation must be all unique. Existing scripts are run on resize.
É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.