Ringkasan
Dataproc Persistent History Server (PHS) menyediakan antarmuka web untuk melihat histori tugas untuk tugas yang berjalan di cluster Dataproc yang aktif atau dihapus. Library ini tersedia di gambar versi 1.5 Dataproc dan yang lebih baru, serta berjalan di cluster Dataproc satu node. Layanan ini menyediakan antarmuka web ke file dan data berikut:
File histori tugas MapReduce dan Spark
File histori tugas Flink (lihat Komponen Flink opsional Dataproc untuk membuat cluster Dataproc guna menjalankan tugas Flink)
File data Linimasa Aplikasi yang dibuat oleh Layanan Linimasa YARN v2 dan disimpan di instance Bigtable.
Log agregasi YARN
Server Histori Permanen mengakses dan menampilkan file histori tugas Spark dan MapReduce, file histori tugas Flink, dan file log YARN yang ditulis ke Cloud Storage selama masa aktif cluster tugas Dataproc.
Batasan
Versi image cluster PHS dan versi image cluster tugas Dataproc harus cocok. Misalnya, Anda dapat menggunakan cluster PHS versi gambar Dataproc 2.0 untuk melihat file histori tugas dari tugas yang berjalan di cluster tugas versi gambar Dataproc 2.0 yang berada di project tempat cluster PHS berada.
Cluster PHS tidak mendukung Kerberos dan Autentikasi Pribadi.
Membuat cluster PHS Dataproc
Anda dapat menjalankan perintah gcloud dataproc clusters create
berikut di terminal lokal atau di Cloud Shell dengan flag berikut dan properti cluster untuk membuat cluster node tunggal Dataproc Persistent History Server.
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT \ --region=REGION \ --single-node \ --enable-component-gateway \ --optional-components=COMPONENT \ --properties=PROPERTIES
- CLUSTER_NAME: Tentukan nama cluster PHS.
- PROJECT: Tentukan project yang akan dikaitkan dengan cluster PHS. Project ini harus sama dengan project yang terkait dengan cluster yang menjalankan tugas Anda (lihat Membuat cluster tugas Dataproc).
- REGION: Tentukan region Compute Engine tempat cluster PHS akan berada.
--single-node
: Cluster PHS adalah cluster node tunggal Dataproc.--enable-component-gateway
: Flag ini mengaktifkan antarmuka web Component Gateway di cluster PHS.- COMPONENT: Gunakan flag ini untuk menginstal satu atau beberapa
komponen opsional
di cluster. Anda harus menentukan komponen opsional
FLINK
untuk menjalankan Layanan Web Flink HistoryServer di cluster PHS guna melihat file histori tugas Flink. - PROPERTIES. Tentukan satu atau beberapa properti cluster.
Secara opsional, tambahkan flag --image-version untuk menentukan versi image cluster PHS. Versi image PHS harus cocok dengan versi image cluster tugas Dataproc. Lihat Batasan.
Catatan:
- Contoh nilai properti di bagian ini menggunakan karakter pengganti "*" untuk memungkinkan PHS cocok dengan beberapa direktori dalam bucket yang ditentukan yang ditulis oleh cluster tugas yang berbeda (tetapi lihat Pertimbangan efisiensi karakter pengganti).
- Flag
--properties
terpisah ditampilkan dalam contoh berikut untuk membantu keterbacaan. Praktik yang direkomendasikan saat menggunakangcloud dataproc clusters create
untuk membuat cluster Dataproc di Compute Engine adalah menggunakan satu flag--properties
untuk menentukan daftar properti yang dipisahkan koma (lihat pemformatan properti cluster).
Properti:
yarn:yarn.nodemanager.remote-app-log-dir=gs://bucket-name/*/yarn-logs
: Tambahkan properti ini untuk menentukan lokasi Cloud Storage tempat PHS akan mengakses log YARN yang ditulis oleh cluster tugas.spark:spark.history.fs.logDirectory=gs://bucket-name/*/spark-job-history
: Tambahkan properti ini untuk mengaktifkan histori tugas Spark yang persisten. Properti ini menentukan lokasi tempat PHS akan mengakses log histori tugas Spark yang ditulis oleh cluster tugas.Di cluster Dataproc 2.0+, dua properti berikut juga harus ditetapkan untuk mengaktifkan log histori Spark PHS (lihat Opsi Konfigurasi Server Histori Spark). Nilai
spark.history.custom.executor.log.url
adalah nilai literal yang berisi {{PLACEHOLDERS}} untuk variabel yang akan ditetapkan oleh Server Histori Permanen. Variabel ini tidak ditetapkan oleh pengguna; teruskan nilai properti seperti yang ditampilkan.--properties=spark:spark.history.custom.executor.log.url.applyIncompleteApplication=false
--properties=spark:spark.history.custom.executor.log.url={{YARN_LOG_SERVER_URL}}/{{NM_HOST}}:{{NM_PORT}}/{{CONTAINER_ID}}/{{CONTAINER_ID}}/{{USER}}/{{FILE_NAME}}
mapred:mapreduce.jobhistory.read-only.dir-pattern=gs://bucket-name/*/mapreduce-job-history/done
: Tambahkan properti ini untuk mengaktifkan histori tugas MapReduce persisten. Properti ini menentukan lokasi Cloud Storage tempat PHS akan mengakses log histori tugas MapReduce yang ditulis oleh cluster tugas.dataproc:yarn.atsv2.bigtable.instance=projects/project-id/instance_id/bigtable-instance-id
: Setelah Anda Mengonfigurasi Layanan Linimasa Yarn v2, tambahkan properti ini untuk menggunakan cluster PHS guna melihat data linimasa di antarmuka web Layanan Linimasa Aplikasi YARN V2 dan Tez (lihat Antarmuka web Component Gateway).flink:historyserver.archive.fs.dir=gs://bucket-name/*/flink-job-history/completed-jobs
: Gunakan properti ini untuk mengonfigurasiHistoryServer
Flink guna memantau daftar direktori yang dipisahkan koma.
Contoh properti:
--properties=spark:spark.history.fs.logDirectory=gs://bucket-name/*/spark-job-history
--properties=mapred:mapreduce.jobhistory.read-only.dir-pattern=gs://bucket-name/*/mapreduce-job-history/done
--properties=flink:flink.historyserver.archive.fs.dir=gs://bucket-name/*/flink-job-history/completed-jobs
Membuat cluster tugas Dataproc
Anda dapat menjalankan perintah berikut di terminal lokal atau di Cloud Shell untuk membuat cluster tugas Dataproc yang menjalankan tugas dan menulis file histori tugas ke Persistent History Server (PHS).
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT \ --region=REGION \ --optional-components=COMPONENT \ --enable-component-gateway \ --properties=PROPERTIES \ other args ...
- CLUSTER_NAME: Tentukan nama cluster tugas.
- PROJECT: Menentukan project yang terkait dengan cluster tugas.
- REGION: Tentukan region Compute Engine tempat cluster tugas akan berada.
--enable-component-gateway
: Flag ini mengaktifkan antarmuka web Component Gateway di cluster tugas.- COMPONENT: Gunakan flag ini untuk menginstal satu atau beberapa
komponen opsional
di cluster. Tentukan komponen opsional
FLINK
untuk menjalankan tugas Flink di cluster. PROPERTIES: Tambahkan satu atau beberapa properti cluster berikut untuk menetapkan lokasi Cloud Storage non-default terkait PHS dan properti cluster tugas lainnya.
Catatan:
- Contoh nilai properti di bagian ini menggunakan karakter pengganti "*" untuk memungkinkan PHS cocok dengan beberapa direktori dalam bucket yang ditentukan yang ditulis oleh cluster tugas yang berbeda (tetapi lihat Pertimbangan efisiensi karakter pengganti).
- Flag
--properties
terpisah ditampilkan dalam contoh berikut untuk membantu keterbacaan. Praktik yang direkomendasikan saat menggunakangcloud dataproc clusters create
untuk membuat cluster Dataproc di Compute Engine adalah menggunakan satu flag--properties
untuk menentukan daftar properti yang dipisahkan koma (lihat pemformatan properti cluster).
Properti:
yarn:yarn.nodemanager.remote-app-log-dir
: Secara default, log YARN gabungan diaktifkan di cluster tugas Dataproc dan ditulis ke bucket sementara cluster. Tambahkan properti ini untuk menentukan lokasi Cloud Storage lain tempat cluster akan menulis log agregasi untuk diakses oleh Persistent History Server.--properties=yarn:yarn.nodemanager.remote-app-log-dir=gs://bucket-name/directory-name/yarn-logs
spark:spark.history.fs.logDirectory
danspark:spark.eventLog.dir
: Secara default, file histori tugas Spark disimpan di clustertemp bucket
dalam direktori/spark-job-history
. Anda dapat menambahkan properti ini untuk menentukan lokasi Cloud Storage yang berbeda untuk file ini. Jika kedua properti tersebut digunakan, properti tersebut harus mengarah ke direktori dalam bucket yang sama.--properties=spark:spark.history.fs.logDirectory=gs://bucket-name/directory-name/spark-job-history
--properties=spark:spark.eventLog.dir=gs://bucket-name/directory-name/spark-job-history
mapred:mapreduce.jobhistory.done-dir
danmapred:mapreduce.jobhistory.intermediate-done-dir
: Secara default, file histori tugas MapReduce disimpan di clustertemp bucket
dalam direktori/mapreduce-job-history/done
dan/mapreduce-job-history/intermediate-done
. Lokasimapreduce.jobhistory.intermediate-done-dir
perantara adalah penyimpanan sementara; file perantara dipindahkan ke lokasimapreduce.jobhistory.done-dir
saat tugas MapReduce selesai. Anda dapat menambahkan properti ini untuk menentukan lokasi Cloud Storage yang berbeda untuk file ini. Jika kedua properti digunakan, keduanya harus mengarah ke direktori di bucket yang sama.--properties=mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/directory-name/mapreduce-job-history/done
--properties=mapred:mapreduce.jobhistory.intermediate-done-dir=gs://bucket-name/directory-name/mapreduce-job-history/intermediate-done
spark:spark.history.fs.gs.outputstream.type
danspark:spark.history.fs.gs.outputstream.sync.min.interval.ms
: Tambahkan properti konektor Cloud Storage ini untuk mengubah perilaku default cara cluster tugas mengirim data ke Cloud Storage.spark:spark.history.fs.gs.outputstream.type
default adalahBASIC
, yang mengirim data ke Cloud Storage setelah tugas selesai. Anda dapat mengubah setelan ini keFLUSHABLE_COMPOSITE
untuk mengubah perilaku penghapusan data untuk menyalin data ke Cloud Storage pada interval reguler saat tugas berjalan.--properties=spark:spark.history.fs.gs.outputstream.type=FLUSHABLE_COMPOSITE
spark:spark.history.fs.gs.outputstream.sync.min.interval.ms
default, yang mengontrol frekuensi transfer data ke Cloud Storage, adalah5000ms
, dan dapat diubah ke interval waktums
yang berbeda: Catatan: Untuk menetapkan properti ini, versi image cluster tugas Dataproc harus menggunakan konektor Cloud Storage versi 2.2.0 atau yang lebih baru. Anda dapat memeriksa versi konektor yang diinstal pada versi image dari halaman Daftar versi image Dataproc.--properties=spark:spark.history.fs.gs.outputstream.sync.min.interval.ms=intervalms
dataproc:yarn.atsv2.bigtable.instance
: Setelah Anda Mengonfigurasi Layanan Linimasa Yarn v2, tambahkan properti ini untuk menulis data linimasa YARN ke instance Bigtable yang ditentukan untuk dilihat di antarmuka web Layanan Linimasa Aplikasi YARN V2 dan Tez cluster PHS. Catatan: pembuatan cluster akan gagal jika instance Bigtable tidak ada.--properties=dataproc:yarn.atsv2.bigtable.instance=projects/project-id/instance_id/bigtable-instance-id
flink:jobhistory.archive.fs.dir
: Flink JobManager mengarsipkan tugas Flink yang telah selesai dengan mengupload informasi tugas yang diarsipkan ke direktori sistem file. Gunakan properti ini untuk menetapkan direktori arsip diflink-conf.yaml
.--properties=flink:jobmanager.archive.fs.dir=gs://bucket-name/job-cluster-1/flink-job-history/completed-jobs
Menggunakan PHS dengan workload batch Spark
Untuk menggunakan Server Histori Permanen dengan Dataproc Serverless untuk workload batch Spark:
Pilih atau tentukan cluster PHS saat Anda mengirimkan beban kerja batch Spark.
Menggunakan PHS dengan Dataproc di Google Kubernetes Engine
Untuk menggunakan Persistent History Server dengan Dataproc di GKE:
Pilih atau tentukan cluster PHS saat Anda membuat Dataproc di cluster virtual GKE.
Antarmuka web Component Gateway
Di konsol Google Cloud, dari halaman Clusters Dataproc, klik nama cluster PHS untuk membuka halaman Cluster details. Di tab Web Interfaces, pilih link Component gateway untuk membuka antarmuka web yang berjalan di cluster PHS.
Antarmuka web Spark History Server
Screenshot berikut menunjukkan antarmuka web Spark History Server yang menampilkan link
ke tugas Spark yang dijalankan di job-cluster-1 dan job-cluster-2 setelah menyiapkan
lokasi spark.history.fs.logDirectory
dan spark:spark.eventLog.dir
cluster tugas serta spark.history.fs.logDirectory
cluster PHS sebagai berikut:
job-cluster-1 | gs://example-cloud-storage-bucket/job-cluster-1/spark-job-history |
job-cluster-2 | gs://example-cloud-storage-bucket/job-cluster-2/spark-job-history |
phs-cluster | gs://example-cloud-storage-bucket/*/spark-job-history |
Penelusuran nama aplikasi
Anda dapat mencantumkan tugas berdasarkan Nama Aplikasi di antarmuka web Spark History Server dengan memasukkan nama aplikasi di kotak penelusuran. Nama aplikasi dapat ditetapkan dengan salah satu cara berikut (tercantum berdasarkan prioritas):
- Menetapkan di dalam kode aplikasi saat membuat konteks spark
- Ditetapkan oleh properti spark.app.name saat tugas dikirim
- Ditetapkan oleh Dataproc ke nama resource REST lengkap untuk
tugas (
projects/project-id/regions/region/jobs/job-id
)
Pengguna dapat memasukkan istilah nama aplikasi atau resource di kotak Telusuri untuk menemukan dan mencantumkan tugas.
Log aktivitas
Antarmuka web Spark History Server menyediakan tombol Log Peristiwa yang dapat Anda klik untuk mendownload log peristiwa Spark. Log ini berguna untuk memeriksa siklus proses aplikasi Spark.
Tugas Spark
Aplikasi Spark dibagi menjadi beberapa tugas, yang selanjutnya dibagi menjadi beberapa tahap. Setiap tahap dapat memiliki beberapa tugas, yang dijalankan di node eksekutor (pekerja).
Klik ID Aplikasi Spark di antarmuka web untuk membuka halaman Tugas Spark, yang menyediakan linimasa peristiwa dan ringkasan tugas dalam aplikasi.
Klik tugas untuk membuka halaman Detail Tugas dengan Directed Acyclic Graph (DAG) dan ringkasan tahap tugas.
Klik tahap atau gunakan tab Tahap untuk memilih tahap guna membuka halaman Detail Tahap.
Detail Tahap mencakup visualisasi DAG, linimasa peristiwa, dan metrik untuk tugas dalam tahap. Anda dapat menggunakan halaman ini untuk memecahkan masalah terkait tugas yang terhambat, penundaan penjadwal, dan error kehabisan memori. Visualisator DAG menampilkan baris kode tempat tahap berasal, yang membantu Anda melacak masalah kembali ke kode.
Klik tab Executors untuk mengetahui informasi tentang node driver dan executor aplikasi Spark.
Informasi penting di halaman ini mencakup jumlah core dan jumlah tugas yang dijalankan di setiap eksekutor.
Antarmuka web Tez
Tez adalah mesin eksekusi default untuk Hive dan Pig di Dataproc. Mengirimkan tugas Hive di cluster tugas Dataproc akan meluncurkan aplikasi Tez (lihat Menggunakan Apache Hive di Dataproc ).
Jika Anda mengonfigurasi Yarn Timeline Service v2
dan menetapkan properti dataproc:yarn.atsv2.bigtable.instance
saat
membuat cluster tugas PHS dan Dataproc, YARN akan menulis
data linimasa tugas Hive dan Pig yang dihasilkan ke instance Bigtable
yang ditentukan untuk diambil dan ditampilkan di antarmuka web Tez yang berjalan di
server PHS.
Antarmuka web Linimasa Aplikasi YARN V2
Jika Anda mengonfigurasi Yarn Timeline Service v2
dan menetapkan properti dataproc:yarn.atsv2.bigtable.instance
saat
membuat cluster tugas PHS dan Dataproc, YARN akan menulis
data linimasa tugas yang dihasilkan ke instance Bigtable yang ditentukan untuk diambil dan
ditampilkan di antarmuka web YARN Application Timeline Service yang berjalan di
server PHS. Tugas Dataproc tercantum di tab Aktivitas Alur di antarmuka web.
Mengonfigurasi Layanan Linimasa Yarn v2
Untuk mengonfigurasi Yarn Timeline Service v2, siapkan instance Bigtable dan, jika diperlukan, periksa peran akun layanan, sebagai berikut:
Periksa peran akun layanan, jika diperlukan. Akun layanan VM default yang digunakan oleh VM cluster Dataproc memiliki izin yang diperlukan untuk membuat dan mengonfigurasi instance Bigtable untuk Layanan Linimasa YARN. Jika Anda membuat tugas atau cluster PHS dengan akun Layanan VM kustom, akun tersebut harus memiliki peran
Administrator
atauBigtable User
Bigtable.
Skema tabel yang diperlukan
Dukungan PHS Dataproc untuk
YARN Timeline Service v2
memerlukan skema tertentu yang dibuat di
instance Bigtable. Dataproc membuat skema yang diperlukan saat cluster tugas atau cluster PHS dibuat dengan properti dataproc:yarn.atsv2.bigtable.instance
yang ditetapkan untuk mengarah ke instance Bigtable.
Berikut adalah skema instance Bigtable yang diperlukan:
Tabel | Grup kolom |
---|---|
prod.timelineservice.application | c,i,m |
prod.timelineservice.app_flow | m |
prod.timelineservice.entity | c,i,m |
prod.timelineservice.flowactivity | i |
prod.timelineservice.flowrun | i |
prod.timelineservice.subapplication | c,i,m |
Pembersihan sampah memori Bigtable
Anda dapat mengonfigurasi Pembersihan Sampah Bigtable berbasis usia untuk tabel ATSv2:
Instal cbt, (termasuk pembuatan
.cbrtc file
).Buat kebijakan pembersihan sampah memori berbasis usia ATSv2:
export NUMBER_OF_DAYS = number \ cbt setgcpolicy prod.timelineservice.application c maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.application i maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.application m maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.app_flow m maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.entity c maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.entity i maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.entity m maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.flowactivity i maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.flowrun i maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.subapplication c maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.subapplication i maxage=${NUMBER_OF_DAYS} \ cbt setgcpolicy prod.timelineservice.subapplication m maxage=${NUMBER_OF_DAYS}
Catatan:
NUMBER_OF_DAYS: Jumlah maksimum hari adalah 30d
.