0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MapR の Logging に関するオプションについて

Last updated at Posted at 2017-05-30

MapRではYARNに関連するLoggingとして以下の3つのオプションを指定できます。

  1. Local logging
  2. YARN log aggregation
  3. Centralized logging (MapRのみ)

各オプションの特徴は以下のようにまとめられます

オプション 対応アプリケーションのタイプ ログ格納場所 リアルタイム性
Local logging MR1, MR2, Yarn applications (non-MR) ローカル YES
YARN log aggregation MR2, Yarn applications (non-MR) HDFS (MapR-FS) NO
Centralized logging MR1, MR2 HDFS (MapR-FS) YES

本記事ではこの3つのオプションの簡単な説明とセットアップについて説明していきます。
ただし、MR はv2に関してのみの説明となります。

1. Local logging

デフォルトの設定となります。
この場合、ログはローカルのファイルシステムに出力されるだけで、アグリゲーションされません。
この場合、ログを見ようとする場合は、ResourceManagerのWebUIなどから実行されたホストを探して、そのログを見る、といったフローになります。
MR2のログの場所はデフォルトで以下のパスとなります。

/opt/mapr/hadoop/hadoop-<version>/logs/userlogs/<application ID>/

2. yarn log aggregation

yarn log aggregationではローカルにログを書き出した後に、HDFS(MapR-FS)上に移動されます。
こちらはapache hadoop で実装されている機能となります。
有効化する際には以下のファイルを編集する必要があります。

yarn-site.xmlを編集して、log aggregationをenableします。

パス
/opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop/yarn-site.xml

以下を追加
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>

MapRのデフォルトであるノンセキュアなクラスタではyarn-env.shも編集する必要があります

パス
/opt/mapr/hadoop/hadoop-2.x/etc/hadoop/yarn-env.sh

以下を追加
export MAPR_IMPERSONATION_ENABLED=1

このあと、クラスタのNodeManagerを全て再起動してください。

デフォルトではアプリケーションの実行後にローカルからHDFS (MapR-FS)上の以下のパスにログが移動されます。

/tmp/logs/<実行ユーザ>/logs/<アプリケーションID>/

以下のコマンドでログを参照できます。

$ yarn logs -applicationId <アプリケーションID>

HDFS上のファイルはwrite-onceなので、ログの参照はアプリケーションの実行後に可能となります。

ResourceManagerのWebUIからも参照可能にするためには、Job History Serverも再起動して下さい。

centralized log aggregation

centralized log aggregationはMapR特有の機能となり、ログはアプリケーション実行中からMapR-FS上に格納されます。
そのため、ローカルのディスク容量を気にする必要がありません。
また、MapR-FSでは追記が可能なため、リアルタイムでの参照も可能となります。

ただし、centralized log aggregationが利用可能なのはMR, MR2に関してのみとなり、MR以外のYARNアプリケーションでは利用できません。

有効化する際には、yarn-site.xmlに以下の設定を追加します。

  <property>
    <name>yarn.use-central-logging-for-mapreduce-only</name>
    <value>true</value>
  </property>

追加後にnodemanager, resourcemanagerを再起動してください。

有効後にMR2アプリケーションを実行すると、デフォルトではMapR-FS上の以下のパスにログが記載されます。

/var/mapr/local/<host>/logs/yarn/userlogs/<アプリケーション>/<コンテナ>

上記のログをリアルタイムで参照しようとすると以下のようなコマンドになるため、パスが長くなり結構大変です

$ tail -f /mapr/<クラスタ名>/var/mapr/local/<host>/logs/yarn/userlogs/<アプリケーション>/<コンテナ>

これの対応として以下の用にシムリンクを作成出来ます。

$ maprcli job linklogs -jobid <アプリケーションID> -todir <参照先MapR-FSパス>

参照先のMapR-FSパスを/tmp/centralにすると、ログの参照パスは以下のようになります

$ ls /mapr/<ホスト名>/tmp/central/<アプリケーションID>/hosts/<host>/<コンテナ>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?