Log tugas dan cluster Managed Service untuk Apache Spark dapat dilihat, ditelusuri, difilter, dan diarsipkan di Cloud Logging.
Baca bagian Harga Google Cloud Observability untuk memahami biaya Anda.
Lihat Periode retensi log untuk mengetahui informasi tentang retensi logging.
Lihat Pengecualian log untuk menonaktifkan semua log atau mengecualikan log dari Logging.
Lihat Ringkasan pemilihan rute dan penyimpanan untuk merutekan log dari Logging ke Cloud Storage, BigQuery, atau Pub/Sub.
Level logging komponen
Tetapkan level logging Spark, Hadoop, Flink, dan komponen Managed Service untuk Apache Spark lainnya dengan properti cluster log4j khusus komponen, seperti hadoop-log4j, saat Anda membuat cluster. Level logging komponen berbasis cluster berlaku untuk daemon layanan, seperti YARN ResourceManager, dan untuk tugas yang berjalan di cluster.
Jika properti log4j tidak didukung untuk komponen, seperti komponen Presto,
tulis tindakan inisialisasi
yang mengedit file log4j.properties atau log4j2.properties komponen.
Tingkat logging komponen khusus tugas: Anda juga dapat menetapkan tingkat logging komponen saat mengirimkan tugas. Level logging ini diterapkan ke tugas, dan lebih diprioritaskan daripada level logging yang ditetapkan saat Anda membuat cluster. Lihat Properti cluster vs. tugas untuk mengetahui informasi selengkapnya.
Tingkat logging versi komponen Spark dan Hive:
Komponen Spark 3.3.X dan Hive 3.X menggunakan properti log4j2,
sedangkan versi sebelumnya dari komponen ini menggunakan properti log4j (lihat
Apache Log4j2).
Gunakan awalan spark-log4j: untuk menetapkan level logging Spark di cluster.
Contoh: Managed Service untuk Apache Spark versi image 2.0 dengan Spark 3.1 untuk menetapkan
log4j.logger.org.apache.spark:gcloud dataproc clusters create ... \ --properties spark-log4j:log4j.logger.org.apache.spark=DEBUG
Contoh: Managed Service untuk Apache Spark versi image 2.1 dengan Spark 3.3 untuk menetapkan
logger.sparkRoot.level:gcloud dataproc clusters create ...\ --properties spark-log4j:logger.sparkRoot.level=debug
Level logging driver tugas
Managed Service untuk Apache Spark menggunakan tingkat logging default INFO untuk program driver tugas. Anda dapat mengubah setelan ini untuk satu atau beberapa paket dengan flag --driver-log-levels gcloud dataproc jobs submit.
Contoh:
Tetapkan level logging DEBUG saat mengirimkan tugas Spark yang membaca file Cloud Storage.
gcloud dataproc jobs submit spark ...\ --driver-log-levels org.apache.spark=DEBUG,com.google.cloud.hadoop.gcsio=DEBUG
Contoh:
Tetapkan level logger root ke WARN, level logger com.example ke INFO.
gcloud dataproc jobs submit hadoop ...\ --driver-log-levels root=WARN,com.example=INFO
Level logging eksekutor Spark
Untuk mengonfigurasi level logging eksekutor Spark:
Menyiapkan file konfigurasi log4j, lalu menguploadnya ke Cloud Storage
.Referensi file konfigurasi Anda saat Anda mengirimkan tugas.
Contoh:
gcloud dataproc jobs submit spark ...\ --file gs://my-bucket/path/spark-log4j.properties \ --properties spark.executor.extraJavaOptions=-Dlog4j.configuration=file:spark-log4j.properties
Spark mendownload file properti Cloud Storage ke direktori kerja lokal tugas, yang direferensikan sebagai file:<name> di -Dlog4j.configuration.
Log tugas Managed Service untuk Apache Spark di Logging
Lihat output dan log tugas Managed Service untuk Apache Spark untuk mengetahui informasi tentang cara mengaktifkan log driver tugas Managed Service untuk Apache Spark di Logging.
Mengakses log tugas di Logging
Akses log tugas Managed Service untuk Apache Spark menggunakan Logs Explorer, perintah gcloud logging, atau Logging API.
Konsol
Driver Tugas Managed Service untuk Apache Spark dan log container YARN tercantum di bagian resource Cloud Managed Service for Apache Spark Job.
Contoh: Log driver tugas setelah menjalankan kueri Logs Explorer dengan pilihan berikut:
- Resource:
Cloud Dataproc Job - Log name:
dataproc.job.driver
Contoh: Log container YARN setelah menjalankan kueri Logs Explorer dengan pilihan berikut:
- Resource:
Cloud Dataproc Job - Log name:
dataproc.job.yarn.container
gcloud
Anda dapat membaca entri log tugas menggunakan perintah gcloud logging read. Argumen resource harus diapit tanda kutip ("..."). Perintah berikut menggunakan label cluster untuk memfilter entri log yang ditampilkan.
gcloud logging read \ "resource.type=cloud_dataproc_job \ resource.labels.region=cluster-region \ resource.labels.job_id=my-job-id"
Contoh output (sebagian):
jsonPayload: class: org.apache.hadoop.hdfs.StateChange filename: hadoop-hdfs-namenode-test-dataproc-resize-cluster-20190410-38an-m-0.log ,,, logName: projects/project-id/logs/hadoop-hdfs-namenode --- jsonPayload: class: SecurityLogger.org.apache.hadoop.security.authorize.ServiceAuthorizationManager filename: cluster-name-dataproc-resize-cluster-20190410-38an-m-0.log ... logName: projects/google.com:hadoop-cloud-dev/logs/hadoop-hdfs-namenode
REST API
Anda dapat menggunakan Logging REST API untuk mencantumkan entri log (lihat entries.list).
Log cluster Managed Service untuk Apache Spark di Logging
Managed Service untuk Apache Spark mengekspor log cluster Apache Hadoop, Spark, Hive, Zookeeper, dan Managed Service untuk Apache Spark lainnya ke Cloud Logging.
| Jenis Log | Nama Log | Deskripsi | Catatan |
|---|---|---|---|
| Log daemon master | hadoop-hdfs hadoop-hdfs-namenode hadoop-hdfs-secondarynamenode hadoop-hdfs-zkfc hadoop-yarn-resourcemanager hadoop-yarn-timelineserver hive-metastore hive-server2 hadoop-mapred-historyserver zookeeper |
Node jurnal Namenode HDFS Namenode sekunder HDFS Pengontrol failover Zookeeper Resource manager YARN Server linimasa YARN Metastore Hive Server Hive2 Server histori tugas Mapreduce Server Zookeeper |
|
| Log daemon worker |
hadoop-hdfs-datanode hadoop-yarn-nodemanager |
Datanode HDFS Nodemanager YARN |
|
| Log sistem |
autoscaler google.dataproc.agent google.dataproc.startup |
Log autoscaler Managed Service untuk Apache Spark Log agen Managed Service untuk Apache Spark Log skrip startup Managed Service untuk Apache Spark + log tindakan inisialisasi |
|
| Log yang diperluas (tambahan) |
knox gateway-audit zeppelin ranger-usersync jupyter_notebook jupyter_kernel_gateway spark-history-server |
Semua log di dalam subdirektori /var/log/ yang cocok dengan:knox (termasuk gateway-audit.log) zeppelin ranger-usersync jupyter_notebook jupyter_kernel_gateway spark-history-server |
Menetapkan properti
dataproc:dataproc.logging.extended.enabled=false akan menonaktifkan pengumpulan log yang diperluas di cluster
|
| Syslog VM |
syslog |
Syslog dari node master dan worker cluster |
Menetapkan properti
dataproc:dataproc.logging.syslog.enabled=false akan menonaktifkan pengumpulan syslog VM di cluster
|
Mengakses log cluster di Cloud Logging
Anda dapat mengakses log cluster Managed Service untuk Apache Spark menggunakan Logs Explorer, perintah gcloud logging, atau Logging API.
Konsol
Tentukan pilihan kueri berikut untuk melihat log cluster di Logs Explorer:
- Resource:
Cloud Dataproc Cluster - Log name: log name
gcloud
Anda dapat membaca entri log cluster menggunakan perintah gcloud logging read. Argumen resource harus diapit tanda kutip ("..."). Perintah berikut menggunakan label cluster untuk memfilter entri log yang ditampilkan.
gcloud logging read <<'EOF' "resource.type=cloud_dataproc_cluster resource.labels.region=cluster-region resource.labels.cluster_name=cluster-name resource.labels.cluster_uuid=cluster-uuid" EOF
Contoh output (sebagian):
jsonPayload: class: org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService filename: hadoop-yarn-resourcemanager-cluster-name-m.log ... logName: projects/project-id/logs/hadoop-yarn-resourcemanager --- jsonPayload: class: org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService filename: hadoop-yarn-resourcemanager-component-gateway-cluster-m.log ... logName: projects/project-id/logs/hadoop-yarn-resourcemanager
REST API
Anda dapat menggunakan Logging REST API untuk mencantumkan entri log (lihat entries.list).
Izin
Untuk menulis log ke Logging, akun layanan VM Managed Service untuk Apache Spark harus memiliki peran IAM logging.logWriter. Akun layanan default Managed Service untuk Apache Spark memiliki peran ini. Jika menggunakan
akun layanan kustom,
Anda harus menetapkan peran ini ke akun layanan.
Melindungi log
Secara default, log di Logging dienkripsi dalam penyimpanan. Anda dapat mengaktifkan kunci enkripsi yang dikelola pelanggan (CMEK) untuk mengenkripsi log. Untuk mengetahui informasi selengkapnya tentang dukungan CMEK, lihat Mengelola kunci yang melindungi data Router Log dan Mengelola kunci yang melindungi data penyimpanan Logging.
Langkah berikutnya
- Pelajari Google Cloud Observability.