Log cluster dan tugas Dataproc dapat dilihat, ditelusuri, difilter, serta diarsipkan di Cloud Logging.
Lihat Harga Kemampuan Observasi Google Cloud untuk memahami biaya Anda.
Lihat Periode retensi data 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.
Tingkat logging komponen
Tetapkan level logging Spark, Hadoop, Flink, dan komponen Dataproc 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 tersebut.
Level logging komponen khusus tugas: Anda juga dapat menetapkan tingkat logging komponen saat mengirimkan tugas. Tingkat logging ini diterapkan ke tugas, dan lebih diprioritaskan daripada tingkat logging yang ditetapkan saat Anda membuat cluster. Lihat Properti cluster vs. properti tugas untuk mengetahui informasi selengkapnya.
Level 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: Dataproc versi 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: Dataproc versi 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
Dataproc menggunakan level logging default dari INFO
untuk program driver tugas. Anda dapat mengubah setelan ini untuk satu atau beberapa paket
dengan tanda gcloud dataproc jobs submit
--driver-log-levels
.
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 pencatat log root
ke WARN
, level pencatat log com.example
ke INFO
.
gcloud dataproc jobs submit hadoop ...\ --driver-log-levels root=WARN,com.example=INFO
Spark level logging eksekutor
Untuk mengonfigurasi level logging eksekutor Spark:
Menyiapkan file konfigurasi log4j, lalu menguploadnya ke Cloud Storage
.Rujuk file konfigurasi Anda saat 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>
dalam -Dlog4j.configuration
.
Log tugas Dataproc di Logging
Lihat Output dan log tugas Dataproc untuk mengetahui informasi tentang cara mengaktifkan log driver tugas Dataproc di Logging.
Mengakses log tugas di Logging
Akses log tugas Dataproc menggunakan Logs Explorer, perintah gcloud logging, atau Logging API.
Konsol
Driver Tugas Dataproc dan log container YARN tercantum di bagian resource Tugas Cloud Dataproc.
Contoh: Log driver tugas setelah menjalankan kueri Logs Explorer dengan pilihan berikut:
- Referensi:
Cloud Dataproc Job
- Nama log:
dataproc.job.driver
Contoh: Log container YARN setelah menjalankan kueri Logs Explorer dengan pilihan berikut:
- Referensi:
Cloud Dataproc Job
- Nama log:
dataproc.job.yarn.container
gcloud
Anda dapat membaca entri log tugas menggunakan perintah gcloud logging read. Argumen resource harus diapit dalam 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 Dataproc di Logging
Dataproc mengekspor log cluster Dataproc, Spark, Hive, Zookeeper, dan Dataproc lainnya berikut ke Cloud Logging.
Jenis Log | Nama Log | Deskripsi |
---|---|---|
Log daemon master | Hadoop-hdfs hadoop-hdfs-namenode hadoop-hdfs-secondary namenode hadoop-hdfs-zkfc hadoop-yarn-resourcemanager hadoop-yarn-timelineserver hive-metastore hive-server2 mapred-mapred-historyserver zookeeper |
Node jurnal HDFS namenode HDFS secondary namenode Pengontrol failover Zookeeper Pengelola resource YARN Server linimasa YARN Hive metastore Hive server2 Server histori tugas MapReduce Server Zookeeper |
Log daemon pekerja |
wasoop-hdfs-datanode hadoop-yarn-nodemanager |
Datanode HDFS YARN nodemanager |
Log sistem |
penskala otomatis google.dataproc.agent google.dataproc.startup |
Log penskalaan otomatis Dataproc Log agen Dataproc Log skrip startup Dataproc + log tindakan inisialisasi |
Mengakses log cluster di Cloud Logging
Anda dapat mengakses log cluster Dataproc menggunakan Logs Explorer, perintah gcloud logging, atau Logging API.
Konsol
Buat pilihan kueri berikut untuk melihat log cluster di Logs Explorer:
- Referensi:
Cloud Dataproc Cluster
- Nama log: log name
gcloud
Anda dapat membaca entri log cluster menggunakan perintah gcloud logging read. Argumen resource harus diapit dalam 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 Dataproc harus memiliki peran IAM peran logging.logWriter
. Akun layanan Dataproc default memiliki peran ini. Jika menggunakan akun layanan kustom, Anda harus menetapkan peran ini ke akun layanan.
Melindungi log
Secara default, log dalam Logging dienkripsi saat dalam penyimpanan. Anda dapat mengaktifkan kunci enkripsi yang dikelola pelanggan (Customer-Managed Encryption Key/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 Kemampuan Observasi Google Cloud