Udostępnij przez


Scenariusz: Dzienniki usługi Apache Hive wypełniają miejsce na dysku w węzłach głównych w usłudze Azure HDInsight

W tym artykule opisano kroki rozwiązywania problemów i możliwe rozwiązania problemów związanych z niewystarczającą ilością miejsca na dysku w węzłach głównych w klastrach usługi Azure HDInsight.

Problematyka

W klastrze usługi HDI 4.0 Apache Hive/LLAP niechciane dzienniki zajmują całe miejsce na dysku w węzłach głównych. Ten warunek może spowodować następujące problemy:

  • Dostęp za pomocą protokołu SSH kończy się niepowodzeniem, ponieważ w węźle głównym nie pozostawiono miejsca.
  • Nie można uruchomić ponownie serwera HiveServer2 Interactive.

Przyczyna

Automatyczne usuwanie dziennika hive nie jest skonfigurowane w zaawansowanych konfiguracjach hive-log4j2. Domyślny limit rozmiaru 60 GB zajmuje zbyt dużo miejsca dla wzorca użycia klienta. Domyślnie liczba przechowywanych dzienników jest definiowana przez to równanie MB logs/day = appender.RFA.strategy.max * 10MB.

Rozwiązanie

  1. Przejdź do podsumowania składnika Hive w portalu Ambari i wybierz zakładkę Konfiguracje.

  2. Przejdź do Advanced hive-log4j2 sekcji w obszarze Ustawienia zaawansowane.

    • Opcjonalnie można zmniejszyć wartość , appender.RFA.strategy.max aby zmniejszyć łączną liczbę megabajtów dzienników przechowywanych w ciągu dnia.
  3. Upewnij się, że masz te ustawienia. Jeśli nie widzisz żadnych powiązanych ustawień, dołącz następujące ustawienia:

    # 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. Zapoznaj się z trzema podstawowymi opcjami usuwania na podstawie:

  • Całkowity rozmiar

    • Zmień appender.RFA.strategy.action.condition.nested_condition.fileSize.exceeds rozmiar na wybrany limit rozmiaru.
  • Data

    • Możesz również usunąć komentarz i przełączyć warunki. Następnie zmień appender.RFA.strategy.action.condition.nested_condition.lastMod.age na wybrany wiek.
    # 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
    
  • Kombinacja łącznego rozmiaru i daty

    • Obie opcje można połączyć, usuwając komentarz. Następnie log4j2 będzie zachowywać się tak: Rozpocznij usuwanie dzienników po spełnieniu dowolnego warunku.
    # 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. Zapisz konfiguracje i uruchom ponownie wymagane składniki.

Następne kroki

Jeśli nie znalazłeś swojego problemu lub nie możesz go rozwiązać, odwiedź jeden z następujących kanałów, aby uzyskać dodatkową pomoc.

  • Uzyskaj odpowiedzi od ekspertów platformy Azure za pośrednictwem pomocy technicznej społeczności platformy Azure.

  • Nawiąż połączenie z @AzureSupport — oficjalnym kontem platformy Microsoft Azure, aby ulepszyć środowisko klienta. Łączenie społeczności platformy Azure z odpowiednimi zasobami: odpowiedziami, pomocą techniczną i ekspertami.

  • Jeśli potrzebujesz dodatkowej pomocy, możesz przesłać wniosek o pomoc techniczną w witrynie Azure Portal. Wybierz pozycję Pomoc techniczna na pasku menu lub otwórz centrum Pomoc i obsługa techniczna . Aby uzyskać bardziej szczegółowe informacje, zobacz Jak utworzyć zgłoszenie do pomocy technicznej platformy Azure. Dostęp do pomocy technicznej dotyczącej zarządzania subskrypcjami i rozliczeniami jest oferowany w ramach subskrypcji platformy Microsoft Azure, a pomoc techniczna jest świadczona w ramach jednego z planów pomocy technicznej platformy Azure.