次の方法で共有


シナリオ:Apache Hive ログによって Azure HDInsight のヘッド ノードのディスク領域がいっぱいになる

この記事では、Azure HDInsight クラスターのヘッド ノードのディスク領域不足に関連する問題のトラブルシューティングの手順と可能な解決策について説明します。

問題点

HDI 4.0 Apache Hive/LLAP クラスターで、不要なログによってヘッド ノードのディスク領域全体が占有されている。 この状態により、次の問題が発生する可能性があります。

  • ヘッド ノードに空き領域がないため、SSH アクセスが失敗する。
  • HiveServer2 Interactive が再起動に失敗する

原因

Hive ログの自動削除は、高度な hive-log4j2 構成では構成されていません。 60 GB の既定のサイズ制限では、顧客の使用パターンに対して多くの領域が必要です。 既定では、保持されるログの数は、式 MB logs/day = appender.RFA.strategy.max * 10MB によって定義されます。

解決方法

  1. Ambari ポータルの Hive コンポーネントの概要に移動し、 [Configs](構成) タブを選択します。

  2. Advanced hive-log4j2 の [Advanced hive-log4j2](高度な hive-log4j) セクションに移動します。

    • 必要に応じて、appender.RFA.strategy.max の値を小さくし、1 日に保持されるログの合計メガバイト数を減らすことができます。
  3. 次の設定になっていることを確認してください。 関連する設定が表示されない場合は、次の設定を追加します。

    # 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. 次の 3 つの基本的なオプションを削除します:

  • 総サイズ

    • 選択したサイズ制限に appender.RFA.strategy.action.condition.nested_condition.fileSize.exceeds を変更します。
  • 日付

    • また、条件の使用を解除して切り替えもできます。 次に appender.RFA.strategy.action.condition.nested_condition.lastMod.age を選択した年齢に変更します。
    # 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
    
  • 合計サイズと日付の組み合わせ

    • 両方のオプションを組み合わせるには、コメントを解除します。 その後、log4j2 は次のように動作します。いずれかの条件が満たされた場合にログの削除を開始します。
    # 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. 構成を保存し、必要なコンポーネントを再起動します。

次のステップ

問題がわからなかった場合、または問題を解決できない場合は、次のいずれかのチャネルでサポートを受けてください。

  • Azure コミュニティのサポートを通じて Azure エキスパートから回答を得る。

  • カスタマー エクスペリエンスを向上させるための Microsoft Azure の公式アカウントの @AzureSupport に連絡する。 Azure コミュニティで適切なリソース (回答、サポート、エキスパートなど) につながる。

  • さらにヘルプが必要な場合は、Azure portal からサポート リクエストを送信できます。 メニュー バーから [サポート] を選択するか、 [ヘルプとサポート] ハブを開いてください。 詳細については、「Azure サポート要求を作成する方法」を参照してください。 サブスクリプション管理と課金サポートへのアクセスは、Microsoft Azure サブスクリプションに含まれていますが、テクニカル サポートはいずれかの Azure のサポート プランを通して提供されます。