多くのYARN集約ログを持つクラスタでは、それらをHadoopアーカイブに結合して小さなファイルの数を減らし、NameNodeへの負荷を軽減することが役立つ場合があります。このツールは、これを行う簡単な方法を提供します。Hadoopアーカイブ内の集約ログは、ジョブ履歴サーバーとyarn logs
コマンドによって引き続き読み取ることができます。
Hadoopアーカイブの詳細については、Hadoopアーカイブガイドを参照してください。
usage: mapred archive-logs -force Force recreating the working directory if an existing one is found. This should only be used if you know that another instance is not currently running -help Prints this message -maxEligibleApps <n> The maximum number of eligible apps to process (default: -1 (all)) -maxTotalLogsSize <megabytes> The maximum total logs size (in megabytes) required to be eligible (default: 1024) -memory <megabytes> The amount of memory (in megabytes) for each container (default: 1024) -minNumberLogFiles <n> The minimum number of log files required to be eligible (default: 20) -noProxy When specified, all processing will be done as the user running this command (or the YARN user if DefaultContainerExecutor is in use). When not specified, all processing will be done as the user who owns that application; if the user running this command is not allowed to impersonate that user, it will fail -verbose Print more details.
競合を防ぐため、このツールはクラスタで一度に1つのインスタンスのみを実行することをサポートしています。これは、HDFSのyarn.nodemanager.remote-app-log-dir
(デフォルト: /tmp/logs/archive-logs-work
)の下にarchive-logs-work
という名前のディレクトリが存在するかどうかをチェックすることによって行われます。何らかの理由でそのディレクトリが適切にクリーンアップされず、ツールが実行を拒否する場合、-force
オプションを使用して強制的に実行できます。
-help
オプションは、使用方法情報を表示します。
このツールは、次の手順を実行することによって機能します。
-minNumberLogFiles
個のログファイルがある-maxTotalLogsSize
メガバイト未満である-maxEligibleApps
を超える場合、最新のアプリケーションは削除されます。これらは次回処理できます。-maxEligibleApps
個のコンテナで、-memory
メガバイトのメモリを使用して実行されます。各コンテナは、単一のアプリケーションに対してhadoop archives
コマンドを実行し、その集約ログファイルを結果のアーカイブで置き換えます。-noProxy
オプションを使用すると、ツールは現在実行しているユーザー、またはDefaultContainerExecutorを使用している場合はYARNユーザーとしてすべてを処理します。指定しない場合、すべての処理はアプリケーションを所有するユーザーによって行われます。このコマンドを実行しているユーザーがそのユーザーのなりすましを許可されていない場合、失敗します。これは、管理者ユーザーがなりすましを有効にすることなくすべての集約を処理する場合に役立ちます。-noProxy
を使用すると、結果のHARファイルは、ログを最初に所有していたユーザーではなく、ツールを実行したユーザーが所有します。
-verbose
オプションを使用すると、ツールは実行内容の詳細情報を表示します。
ツールの実行の結果、処理されたアプリケーションの元の集約ログファイルは、それらのすべてのログを含むHadoopアーカイブに置き換えられます。