Saat Anda mengirimkan tugas Dataproc, Dataproc secara otomatis mengumpulkan output tugas, dan menyediakannya untuk Anda. Artinya, Anda dapat meninjau output tugas dengan cepat tanpa harus mempertahankan koneksi ke cluster saat tugas berjalan atau memeriksa file log yang rumit.
Log percikan
Ada dua jenis log Spark: log driver Spark dan log eksekutor Spark.
Log driver Spark berisi output tugas; Log eksekutor Spark berisi tugas yang dapat dieksekusi atau output peluncur, seperti pesan spark-submit
"Dikirim aplikasi xxx", dan dapat berguna untuk men-debug kegagalan tugas.
Driver tugas Dataproc, yang berbeda dengan driver Spark, adalah peluncur untuk banyak jenis tugas. Saat tugas Spark diluncurkan, tugas ini akan berjalan sebagai wrapper pada file spark-submit
yang dapat dieksekusi yang mendasarinya, yang akan meluncurkan driver Spark. Driver Spark menjalankan tugas pada cluster Dataproc dalam mode client
atau cluster
Spark:
Mode
client
: driver Spark menjalankan tugas dalam prosesspark-submit
, dan log Spark dikirim ke driver tugas Dataproc.Mode
cluster
: driver Spark menjalankan tugas di container 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. Saat true , output driver tugas berada di Logging, yang terkait dengan resource tugas; saat 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.
Ketika true , log container YARN tugas dikaitkan dengan resource tugas; saat false , log container YARN tugas akan dikaitkan dengan resource cluster. |
spark:spark.submit.deployMode |
klien atau cluster | klien | Mengontrol mode Spark client atau cluster . |
Tugas Spark yang dikirimkan menggunakan Dataproc jobs
API
Tabel di bagian ini mencantumkan pengaruh berbagai setelan properti pada tujuan output driver tugas Dataproc saat tugas dikirim melalui Dataproc jobs
API, yang mencakup pengiriman tugas melalui Google Cloud Console, 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 dijalankan 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: |
Output |
---|---|
false (salah) (default) |
|
true |
|
Log driver Spark
Tabel berikut mencantumkan efek dari berbagai setelan properti pada tujuan log driver Spark.
spark: |
dataproc: |
dataproc: |
Output Driver |
---|---|---|---|
klien | false (salah) (default) | benar atau salah |
|
klien | true | benar atau salah |
|
cluster | false (salah) (default) | false |
|
cluster | true | true |
|
Spark log eksekutor
Tabel berikut mencantumkan efek dari berbagai setelan properti pada tujuan log eksekutor Spark.
dataproc: |
Log Executor |
---|---|
false (salah) (default) | Di Logging: yarn-userlogs di bagian resource cluster |
true | Di Logging dataproc.job.yarn.container di bagian resource lowongan |
Tugas Spark yang dikirimkan tanpa menggunakan Dataproc jobs
API
Bagian ini mencantumkan pengaruh dari setelan properti yang berbeda pada tujuan log tugas Spark saat tugas dikirimkan tanpa menggunakan Dataproc jobs
API, misalnya saat mengirimkan tugas secara langsung pada node cluster menggunakan spark-submit
atau saat menggunakan notebook Jupyter atau Zeppelin. Tugas ini tidak memiliki ID atau driver tugas Dataproc.
Log driver Spark
Tabel berikut mencantumkan pengaruh dari berbagai setelan properti pada tujuan log driver Spark untuk tugas yang tidak dikirimkan melalui Dataproc jobs
API.
spark: |
Output Driver |
---|---|
klien |
|
cluster |
|
Spark log eksekutor
Jika tugas Spark tidak dikirimkan melalui Dataproc jobs
API, log eksekutor akan berada di Logging yarn-userlogs
di bawah resource cluster.
Melihat output tugas
Anda dapat mengakses output tugas Dataproc di Google Cloud Console, 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 sedang berjalan, output tugas akan dimuat ulang 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 di lain waktu, di komputer lain, atau di jendela baru dengan meneruskan ID tugas Anda ke perintah gcloud dataproc jobswait. 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 ditentukan 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 explain.
$ gcloud dataproc jobs describe spark-pi ... driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput ...