Dgraph HDFSエージェントのロギング

Dgraph HDFSエージェントは、stdout/stderr出力をログ・ファイルに書き込みます。

Dgraph HDFSエージェントの--outフラグは、Dgraph HDFSエージェントのs stdout/stderrログ・ファイルのファイル名およびパスを指定します。このログ・ファイルは、インポート(収集)操作とエクスポート操作の両方に使用されます。

出力ログ・ファイルの名前と場所は、bdd.conf構成ファイルのAGENT_OUT_FILEパラメータを使用してインストール時に設定されます。通常、ログ名はdgraphHDFSAgent.outで、場所は$BDD_HOME/logsディレクトリです。

Dgraph HDFSエージェントのログが特に重要なのは、データ処理ワークフローの最後にレコードを収集するときに問題が発生するかどうかをチェックする場合です。Dgraphから受け取ったエラー(拒否されたレコードなど)はここに記録されます。

収集操作のメッセージ

default_edp_999という名前のデータ・セットに対して正常に行われた収集操作のサンプル・メッセージを次に示します。(データ・セットはDgraphではコレクションと呼ばれます。)これらのメッセージは読みやすいように編集されています。
New import request received: Collection name: default_edp_999, 
   location: /user/bdd/.dataIngestSwamp/default_edp_999, user name: yarn
Finished reading 57076 records for Collection name: default_edp_999, 
   location: /user/bdd/.dataIngestSwamp/default_edp_999, user name: yarn
fetchMoreRecords Collection name: default_edp_999, 
   location: /user/bdd/.dataIngestSwamp/default_edp_999, user name: yarn
createBulkIngester default_edp_999
Starting ingest for: Collection name: default_edp_999, 
   location: /user/bdd/.dataIngestSwamp/default_edp_999, user name: yarn
sendRecordsToIngester 57076
fetchMoreRecords Collection name: default_edp_999, 
   location: /user/bdd/.dataIngestSwamp/default_edp_999, user name: yarn
closeBulkIngester
fetchMoreRecords Collection name: default_edp_999, 
   location: /user/bdd/.dataIngestSwamp/default_edp_999, user name: yarn
Ingest finished with 57076 records committed and 0 records rejected.
   Status: INGEST_FINISHED. Request info: Collection name: default_edp_999, 
   location: /user/bdd/.dataIngestSwamp/default_edp_999, user name: yarn
update dataSetInventory request result: 
   ... <ingest:numRecordsAffected>1</ingest:numRecordsAffected> ...
この例では:
  1. データ処理ワークフローが、一連のAvroファイルをHDFS内の/user/bdd/.dataIngestSwamp/default_edp_999ディレクトリに書き込みます。
  2. Dgraph HDFSエージェントが、HDFSディレクトリから57,076個のレコードを読み取ります。
  3. createBulkIngester操作を使用して、default_edp_999コレクションの一括ロード・インジェスタ・インスタンスがインスタンス化されます。
  4. sendRecordsToIngester操作により、Dgraphのインジェスタに57,076個のレコードを送信します。
  5. 一括ロード・インスタンスが、closeBulkIngester操作を使用して閉じられます。
  6. 「Ingest finished」メッセージは、収集操作の終わりを示します。また、このメッセージには、正常にコミットされたレコードの数と、許可されたレコードの数もリストされています。
  7. Dgraph HDFSエージェントは、収集操作の最終ステータスを使用してDataSetインベントリのingestStatus属性を更新します。numRecordsAffected=1レスポンスは、DataSetインベントリ・レコードの更新が成功したことを示します。

拒否されたレコード

特定のレコードには、収集できないデータや、Dgraphをクラッシュする可能性さえあるデータが含まれる場合があります。通常、無効なデータは無効なXML文字で構成されています。この場合、Dgraphでは無効なデータを削除またはクレンジングすることはできず、無効なデータが含まれるレコードのスキップのみが可能です。このインタフェースでは、収集時にXML 1.0以外の文字は拒否されます。つまり、収集に有効な文字は、XML 1.0仕様のproduction 2に準拠している文字列である必要があります。無効な文字列が検出されると、無効な文字列が含まれるレコードが拒否され、Dgraph HDFSエージェントのログに次のエラー・メッセージが表示されます。
Received error message from server: Record rejected: Character <c> is not legal in XML 1.0

ソース・レコードが大きすぎる場合、ソース・レコードも拒否される場合があります。ソース・レコードの最大サイズは128MBに制限されています。128MBより大きいソース・レコードを承認しようとすると失敗し、(拒否されたレコードの主キーとともに)エラーが返されますが、この許可されたレコードの後も一括ロード収集は続行されます。