データ処理のロギング

このトピックでは、データ処理のロギング・ファイルの概要について説明します。

ログ・ファイル

データ処理のログ・ファイルは、データ処理ジョブに関連する各ノード上に存在します。これには次のものがあります。
  • ジョブを開始したクライアント(DP CLIまたはStudioを実行しているノードである可能性があります)
  • Oozie (YARN)ワーカー・ノード
  • Sparkワーカー・ノード

各ノード上のロギングの場所は、data_processing-CLIファイルのedpJarDirプロパティによって定義されます。デフォルトでは、これは/opt/bdd/edp/dataディレクトリです。

データ処理のログ・ファイルはedpLog*.logと呼ばれます。ネーミング・パターンは実際にはlogging.properties構成に設定されています。デフォルトのパターンはedpLog%u%g.logです。この場合、%uは、同時Javaプロセス間の競合を解決するための一意の番号であり、%gは、ローテーションするログを区別するための生成番号です。生成番号はローテーションするため、最後に実行されたデータ処理の生成番号が0になります。デフォルトの構成では、10,000個のログ・ファイルが作成され、その最大ファイル・サイズは1MBです。1MBを超えるログは次のログ・ファイルに繰り越されます。

サンプルのエラー・ログ・メッセージは次のとおりです。
[2015/01/15 14:14:15] INFO: Starting Data Processing on Hive Table: default.claims
[2015/01/15 14:14:15] SEVERE: Error runnning EDP
java.lang.Exception Example Error Log Message
      at com.oracle.endeca.pdi.EdpMain.main(EdpMain.java:38)
      ...

データ処理ログの検索

クライアントによってデータ処理ワークフローが起動されると、実際のデータ処理ジョブを実行するためにOozieジョブが作成されます。このジョブは、クラスタ内の任意のノードによって実行されます(ノードはYARNによって選択されます)。データ処理ログを検索するには、OozieジョブIDを使用してこの特定のクラスタ・ノードを突き止める必要があります。OozieジョブIDは、DP CLIの実行時にコンソールに出力されるか、Studioログ内にあります。

データ処理ログを検索するには:
  1. OozieのWeb UIに移動し、OozieジョブIDを使用して対応するジョブを検索します。
  2. ジョブをクリックし、詳細なOozie情報を表示します。
  3. 「アクション」ペインで、DataProcessingJavaTaskという名前のアクションをクリックします。
  4. 「アクション」ペインのアクション情報タブで、外部IDを検索します。外部IDはYARNジョブIDと一致します。
  5. YARN HistoryServerのWeb UIに移動し、Oozie外部ジョブIDを使用して対応するジョブを検索します。これを行うには、次の手順を実行します。
    1. Cloudera Manager UIを参照し、左側のペインのYARNサービスをクリックします。
    2. 左上の「クイック・リンク」セクションで、HistoryServer Web UIをクリックします。
  6. ジョブをクリックし、詳細なMapReduce情報を表示します。「ノード」プロパティにより、どのマシンによってデータ処理ジョブが実行されたかを確認できます。
  7. そのマシンにログインし、クラスタ上のデータ処理ディレクトリに移動します。デフォルトでは、これは/opt/bdd/edp/dataディレクトリです。データ処理のすべてのログがこのディレクトリ内にあります。
  8. 特定のログを検索するには、対応するワークフロー情報に対してgrep (または同様のツール)を使用する必要がある場合があります。