シナリオ: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
によって定義されます。
解決方法
Ambari ポータルの Hive コンポーネントの概要に移動し、 [Configs](構成) タブを選択します。
Advanced hive-log4j2
の [Advanced hive-log4j2
](高度な hive-log4j) セクションに移動します。- 必要に応じて、
appender.RFA.strategy.max
の値を小さくし、1 日に保持されるログの合計メガバイト数を減らすことができます。
- 必要に応じて、
次の設定になっていることを確認してください。 関連する設定が表示されない場合は、次の設定を追加します。
# 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
次の 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
- 構成を保存し、必要なコンポーネントを再起動します。
次のステップ
問題がわからなかった場合、または問題を解決できない場合は、次のいずれかのチャネルでサポートを受けてください。
Azure コミュニティのサポートを通じて Azure エキスパートから回答を得る。
カスタマー エクスペリエンスを向上させるための Microsoft Azure の公式アカウントの @AzureSupport に連絡する。 Azure コミュニティで適切なリソース (回答、サポート、エキスパートなど) につながる。
さらにヘルプが必要な場合は、Azure portal からサポート リクエストを送信できます。 メニュー バーから [サポート] を選択するか、 [ヘルプとサポート] ハブを開いてください。 詳細については、「Azure サポート要求を作成する方法」を参照してください。 サブスクリプション管理と課金サポートへのアクセスは、Microsoft Azure サブスクリプションに含まれていますが、テクニカル サポートはいずれかの Azure のサポート プランを通して提供されます。