Output dan log tugas Dataproc

Saat Anda mengirimkan tugas Dataproc, Dataproc akan otomatis mengumpulkan output tugas, dan menyediakannya untuk Anda. Artinya, Anda dapat secara cepat meninjau output tugas tanpa harus mempertahankan koneksi ke cluster saat tugas berjalan atau melihat file log yang rumit.

Log Spark

Ada dua jenis log Spark: log driver Spark dan log eksekutor Spark. Log driver Spark berisi output tugas; Log eksekutor Spark berisi output peluncur atau tugas yang dapat dieksekusi, seperti pesan spark-submit "Submitted application xxx", dan dapat membantu proses debug kegagalan tugas.

Pengendali tugas Dataproc, yang berbeda dengan pengendali Spark, adalah peluncur untuk banyak jenis tugas. Saat meluncurkan tugas Spark, tugas tersebut berjalan sebagai wrapper pada file yang dapat dieksekusi spark-submit yang mendasarinya, yang meluncurkan driver Spark. Driver Spark menjalankan tugas di cluster Dataproc dalam mode client atau cluster Spark:

  • Mode client: driver Spark menjalankan tugas dalam proses spark-submit, dan log Spark dikirim ke driver tugas Dataproc.

  • Mode cluster: driver Spark menjalankan tugas dalam penampung YARN. Log driver Spark tidak tersedia untuk driver tugas Dataproc.

Ringkasan properti tugas Dataproc dan Spark

Properti Nilai Default Deskripsi
dataproc:dataproc.logging.stackdriver.job.driver.enable benar atau salah false Harus ditetapkan pada waktu pembuatan cluster. Jika true, output driver tugas ada di Logging, yang terkait dengan resource tugas; jika false, output driver tugas tidak ada di Logging.
Catatan: Setelan properti cluster berikut juga diperlukan untuk mengaktifkan log driver tugas di Logging, dan ditetapkan secara default saat cluster dibuat: dataproc:dataproc.logging.stackdriver.enable=true dan dataproc:jobs.file-backed-output.enable=true
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable benar atau salah false Harus ditetapkan pada waktu pembuatan cluster. Jika true, log penampung YARN tugas dikaitkan dengan resource tugas; jika false, log penampung YARN tugas dikaitkan dengan resource cluster.
spark:spark.submit.deployMode klien atau cluster klien Mengontrol mode Spark client atau cluster.

Tugas Spark yang dikirim menggunakan Dataproc jobs API

Tabel di bagian ini mencantumkan efek dari berbagai setelan properti pada tujuan output driver tugas Dataproc saat tugas dikirimkan melalui Dataproc jobs API, yang mencakup pengiriman tugas melalui Konsol Google Cloud, gcloud CLI, dan Library Klien Cloud.

Properti Dataproc dan Spark yang tercantum dapat ditetapkan dengan flag --properties saat cluster dibuat, dan akan berlaku untuk semua tugas Spark yang berjalan di cluster; Properti Spark juga dapat ditetapkan dengan flag --properties (tanpa awalan "spark:") saat tugas dikirim ke Dataproc jobs API, dan hanya akan berlaku untuk tugas tersebut.

Output driver tugas Dataproc

Tabel berikut mencantumkan efek dari berbagai setelan properti pada tujuan output driver tugas Dataproc.

dataproc:
dataproc.logging.stackdriver.job.driver.enable
Output
false (default)
  • Di-streaming ke klien
  • Di Cloud Storage pada driverOutputResourceUri yang dihasilkan Dataproc
  • Tidak dalam Logging
benar
  • Di-streaming ke klien
  • Di Cloud Storage pada driverOutputResourceUri yang dihasilkan Dataproc
  • Di Logging: dataproc.job.driver di bagian resource tugas.

Log driver Spark

Tabel berikut mencantumkan efek dari berbagai setelan properti pada tujuan log driver Spark.

spark:
spark.submit.deployMode
dataproc:
dataproc.logging.stackdriver.job.driver.enable
dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Output Driver
klien false (default) benar atau salah
  • Di-streaming ke klien
  • Di Cloud Storage pada driverOutputResourceUri yang dihasilkan Dataproc
  • Tidak dalam Logging
klien benar benar atau salah
  • Di-streaming ke klien
  • Di Cloud Storage pada driverOutputResourceUri yang dihasilkan Dataproc
  • Di Logging: dataproc.job.driver di bagian resource tugas
cluster false (default) false
  • Tidak di-streaming ke klien
  • Tidak ada di Cloud Storage
  • Di Logging yarn-userlogs pada bagian resource cluster
cluster benar benar
  • Tidak di-streaming ke klien
  • Tidak ada di Cloud Storage
  • Di Logging: dataproc.job.yarn.container di bagian resource tugas

Log eksekutor Spark

Tabel berikut mencantumkan efek berbagai setelan properti pada tujuan log eksekutor Spark.

dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Log eksekutor
false (default) Di Logging: yarn-userlogs di bagian resource cluster
benar Di Logging dataproc.job.yarn.container di bagian resource tugas

Tugas Spark yang dikirimkan tanpa menggunakan Dataproc jobs API

Bagian ini mencantumkan efek dari berbagai setelan properti pada tujuan log tugas Spark saat tugas dikirimkan tanpa menggunakan Dataproc jobs API, misalnya saat mengirimkan tugas langsung di node cluster menggunakan spark-submit atau saat menggunakan notebook Jupyter atau Zeppelin. Tugas ini tidak memiliki ID tugas atau driver Dataproc.

Log driver Spark

Tabel berikut mencantumkan efek dari berbagai setelan properti pada tujuan log driver Spark untuk tugas yang tidak dikirim melalui Dataproc jobs API.

spark:
spark.submit.deployMode
Output Driver
klien
  • Di-streaming ke klien
  • Tidak ada di Cloud Storage
  • Tidak dalam Logging
cluster
  • Tidak di-streaming ke klien
  • Tidak ada di Cloud Storage
  • Di Logging yarn-userlogs pada bagian resource cluster

Log eksekutor Spark

Jika tugas Spark tidak dikirimkan melalui Dataproc jobs API, log eksekutor akan berada di Logging yarn-userlogs pada resource cluster.

Melihat output tugas

Anda dapat mengakses output tugas Dataproc di konsol Google Cloud, gcloud CLI, Cloud Storage, atau Logging.

Konsol

Untuk melihat output tugas, buka bagian Jobs Dataproc project Anda, lalu klik Job ID untuk melihat output tugas.

Jika tugas berjalan, output tugas akan diperbarui secara berkala dengan konten baru.

perintah gcloud

Saat Anda mengirimkan tugas dengan perintah gcloud dataproc jobs submit, output tugas akan ditampilkan di konsol. Anda dapat "bergabung kembali" dengan output pada lain waktu, di komputer lain, atau di jendela baru dengan meneruskan ID tugas ke perintah gcloud dataproc jobs wait. ID Tugas adalah GUID, seperti 5c1754a5-34f7-4553-b667-8a1199cb9cab. Berikut contohnya.

gcloud dataproc jobs wait 5c1754a5-34f7-4553-b667-8a1199cb9cab \
    --project my-project-id --region my-cluster-region
Waiting for job output...
... INFO gcs.GoogleHadoopFileSystemBase: GHFS version: 1.4.2-hadoop2
... 16:47:45 INFO client.RMProxy: Connecting to ResourceManager at my-test-cluster-m/
...

Cloud Storage

Output tugas disimpan di Cloud Storage di bucket staging atau bucket yang Anda tentukan saat membuat cluster. Link ke output tugas di Cloud Storage disediakan di kolom Job.driverOutputResourceUri yang ditampilkan oleh:

  • permintaan API jobs.get.
  • perintah job-id gcloud dataproc jobs describe.
    $ gcloud dataproc jobs describe spark-pi
    ...
    driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput
    ...
    

Logging

Lihat Log Dataproc untuk mengetahui informasi tentang cara melihat output tugas Dataproc di Logging.