16

Dataproc Spark ジョブからの出力を Google Cloud ロギングに送信する方法はありますか? Dataproc ドキュメントで説明されているように、ジョブ ドライバ(Spark ジョブのマスター)からの出力は、コンソールの [Dataproc] -> [Jobs] で利用できます。Cloud Logging にもログが必要な理由は 2 つあります。

  1. エグゼキューターからのログを見たいのですが。多くの場合、マスター ログには「エグゼキューターが失われました」と表示されますが、それ以上の詳細はありません。エグゼキューターが何をしようとしているのかについて、さらに情報があれば非常に便利です。
  2. Cloud Logging は優れたフィルタリングと検索機能を備えています

現在、Cloud Logging に表示される Dataproc からの唯一の出力は、yarn-yarn-nodemanager-* と container_*.stderr からのログ項目です。私のアプリケーション コードからの出力は Dataproc -> Jobs に表示されますが、Cloud Logging には表示されません。これはエグゼキューターではなく、Spark マスターからの出力のみです。

4

2 に答える 2

7

tl;dr

これは現在ネイティブでサポートされていませんが、Cloud Dataprocの将来のバージョンでネイティブにサポートされる予定です。とはいえ、当面の間は手動で回避策があります。

回避策

Cloud Dataproc クラスタは、fluentdを使用してログを収集し、Cloud Logging に転送します。一部のログが転送され、他のログが転送されないのは、fluentd の構成が原因です。したがって、Cloud Dataproc が Cloud Logging でジョブの詳細をサポートするまでの簡単な回避策は、flientd 構成を変更することです。クラスター上の fluentd の構成ファイルは次の場所にあります。

/etc/google-fluentd/google-fluentd.conf

最も簡単な追加の詳細を収集するには、次の 2 つの方法があります。

  1. 必要に応じて新しいfluentd プラグインを追加します
  2. 収集された既存のファイルのリストに新しいファイルを追加します (行56にはクラスター上のファイルがあります)

構成を編集したら、google-fluentdサービスを再起動する必要があります。

/etc/init.d/google-fluentd restart

最後に、必要に応じて、クラスターのすべてのノードでこれを行う必要がある場合とない場合があります。ユースケースに基づいて、おそらくマスターノードを変更して設定できるようです。

于 2015-12-09T21:11:12.550 に答える