0

マスター ノード (Spark ドライバー プログラムをホストするマシン) に SSH で接続しているときに、Spark アプリによって生成されたライブ ログにコマンド ラインでアクセスしたいと考えています。、Dataproc ウェブ UI、および GCSを使用してそれらを表示gcloud dataproc jobs waitできますが、コマンドライン経由でライブ ログにアクセスできるようにしたいと考えgrepています。

ドライバー (およびエグゼキューター) で Spark によって生成されたログはどこにありますか?

4

1 に答える 1

1

現時点では、Dataproc はドライバ出力の複製コピーをローカル ディスクに実際に作成するのではなく、GCS に配置するだけです。これは、標準のログ ローテーション ポリシーや YARN タスク ログのクリーンアップに完全に適合しないためです。ローカル ディスクでこれらの出力ファイルのガベージ コレクションを実行する方法を追加で定義する必要があります。そうしないと、存続期間の長いクラスターでディスク領域が徐々に不足する危険があります。

とはいえ、このような削除ポリシーは確実に克服できるので、これを機能要求として追加して、ドライバーの出力を GCS とローカル ディスク ファイルの両方に出力し、使いやすさを向上させます。

それまでの間、いくつかのオプションがあります。

  1. cloud-platformクラスターを作成するときにスコープを有効にします ( ) 。gcloud dataproc clusters create --scopes cloud-platformその後、クラスター上でも可能です。gcloud dataproc jobs wait <jobid> | grep foo
  2. gsutil catまたは、 ;を使用します。gcloud dataproc jobs describe最初に別の場所からフィールドを見つけることができる場合driverOutputResourceUri、これはGCSプレフィックスを指します(GCSでそれらを見つけると述べたので、おそらくすでに見つけています)。出力部分には数字の接頭辞が埋め込まれた名前が付けられているgsutil cat gs://bucket/google-cloud-dataproc-metainfo/cluster-uuid/jobs/jobid/driveroutput*ため、 はジョブ出力を正しい順序で出力し、それを必要なものにパイプできます。
于 2016-03-02T19:01:24.450 に答える