Partager via


Scénario : Journaux Apache Hive saturant l’espace disque sur les nœuds principaux dans Azure HDInsight

Cet article décrit la procédure à suivre pour résoudre les problèmes d’insuffisance de l’espace disque sur les nœuds principaux dans les clusters Azure HDInsight.

Problème

Dans un cluster Apache Hive/LLAP HDI 4.0, des journaux indésirables occupent la totalité de l’espace disque sur les nœuds principaux. Cette situation risque de provoquer les problèmes suivants :

  • L’accès SSH échoue car il ne reste pas d’espace sur le nœud principal.
  • Le redémarrage de HiveServer2 Interactive échoue.

Cause

La suppression automatique du journal Hive n’est pas configurée dans les configurations hive-log4j2 avancées. La limite de taille par défaut de 60 Go prend trop d’espace pour le modèle d’utilisation du client. Par défaut, le nombre de journaux conservés est défini par l’équation MB logs/day = appender.RFA.strategy.max * 10MB.

Résolution

  1. Accédez au résumé des composants Hive sur le portail Ambari, puis sélectionnez l’onglet Configurations.

  2. Accédez à la section Advanced hive-log4j2 dans Paramètres avancés.

    • Si vous le souhaitez, vous pouvez réduire la valeur de appender.RFA.strategy.max pour diminuer le nombre total de mégaoctets de journaux conservés dans une journée.
  3. Vérifiez que vous disposez de ces paramètres. Si vous ne voyez aucun paramètre associé, ajoutez les suivants :

    # automatically delete hive log
    appender.RFA.strategy.action.type = Delete
    appender.RFA.strategy.action.basePath = ${sys:hive.log.dir}
    appender.RFA.strategy.action.condition.type = IfFileName
    appender.RFA.strategy.action.condition.regex = hive*.*log.*
    appender.RFA.strategy.action.condition.nested_condition.type = IfAny
    # Deletes logs based on total accumulated size, keeping the most recent
    appender.RFA.strategy.action.condition.nested_condition.fileSize.type = IfAccumulatedFileSize
    appender.RFA.strategy.action.condition.nested_condition.fileSize.exceeds = 60GB
    # Deletes logs IfLastModified date is greater than number of days
    #appender.RFA.strategy.action.condition.nested_condition.lastMod.type = IfLastModified
    #appender.RFA.strategy.action.condition.nested_condition.lastMod.age = 30D
    
  4. Examinez trois options de base avec la suppression basée sur :

  • Total Size

    • Remplacez appender.RFA.strategy.action.condition.nested_condition.fileSize.exceeds par une limite de taille de votre choix.
  • Date

    • Vous pouvez également supprimer les marques de commentaire et changer les conditions. Ensuite, passez appender.RFA.strategy.action.condition.nested_condition.lastMod.age à l’âge de votre choix.
    # Deletes logs based on total accumulated size, keeping the most recent 
    #appender.RFA.strategy.action.condition.nested_condition.fileSize.type = IfAccumulatedFileSize 
    #appender.RFA.strategy.action.condition.nested_condition.fileSize.exceeds = 60GB
    # Deletes logs IfLastModified date is greater than number of days 
    appender.RFA.strategy.action.condition.nested_condition.lastMod.type = IfLastModified 
    appender.RFA.strategy.action.condition.nested_condition.lastMod.age = 30D
    
  • Combinaison de la taille totale et de la date

    • Vous pouvez combiner les deux options en décommentant. Le log4j2 se comporte alors comme suit : démarrer la suppression des journaux lorsque l’une ou l’autre condition est remplie.
    # Deletes logs based on total accumulated size, keeping the most recent 
    appender.RFA.strategy.action.condition.nested_condition.fileSize.type = IfAccumulatedFileSize 
    appender.RFA.strategy.action.condition.nested_condition.fileSize.exceeds = 60GB
    # Deletes logs IfLastModified date is greater than number of days 
    appender.RFA.strategy.action.condition.nested_condition.lastMod.type = IfLastModified 
    appender.RFA.strategy.action.condition.nested_condition.lastMod.age = 30D
    
  1. Enregistrez les configurations et redémarrez les composants nécessaires.

É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.