多くの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アーカイブに置き換えられます。