I log dei job e dei cluster di Dataproc possono essere visualizzati, cercati, filtrati e archiviati in Cloud Logging.
Consulta i prezzi di Google Cloud Observability per comprendere i tuoi costi.
Per informazioni sulla conservazione dei log, consulta Periodi di conservazione dei log.
Consulta la sezione Esclusioni dei log per disattivare tutti i log o escluderne alcuni dalla registrazione.
Consulta la Panoramica su routing e archiviazione per eseguire il routing log da Logging a Cloud Storage, BigQuery o Pub/Sub.
Livelli di logging dei componenti
Imposta i livelli di logging di Spark, Hadoop, Flink e di altri componenti Dataproc con le proprietà del cluster log4j specifiche del componente, come hadoop-log4j
, quando crei un cluster. Basato su cluster
i livelli di registrazione dei componenti si applicano ai daemon di servizio, come YARN ResourceManager,
e ai job eseguiti sul cluster.
Se le proprietà log4j non sono supportate per un componente, ad esempio il componente Presto,
scrivi un'azione di inizializzazione
che modifica il file log4j.properties
o log4j2.properties
del componente.
Livelli di logging dei componenti specifici per il job: puoi anche impostare i livelli di registrazione dei componenti quando inviare un lavoro. Questi i livelli di logging vengono applicati al job e hanno la precedenza rispetto ai livelli di logging impostati durante la creazione del cluster. Consulta Proprietà del cluster e del job per ulteriori informazioni.
Livelli di logging delle versioni dei componenti Spark e Hive:
I componenti Spark 3.3.X e Hive 3.X utilizzano le proprietà log4j2,
mentre le versioni precedenti di questi componenti usano le proprietà log4j (vedi
Apache Log4j2).
Utilizza un prefisso spark-log4j:
per impostare i livelli di logging di Spark su un cluster.
Esempio: Dataproc image versione 2.0 con Spark 3.1 per impostare
log4j.logger.org.apache.spark
:gcloud dataproc clusters create ... \ --properties spark-log4j:log4j.logger.org.apache.spark=DEBUG
Esempio: Dataproc immagine versione 2.1 con Spark 3.3 per impostare
logger.sparkRoot.level
:gcloud dataproc clusters create ...\ --properties spark-log4j:logger.sparkRoot.level=debug
Livelli di registrazione del driver del job
Dataproc utilizza un livello di logging predefinito di INFO
per i programmi del driver dei job. Puoi modificare questa impostazione per uno o più pacchetti con il flag gcloud dataproc jobs submit--driver-log-levels
.
Esempio:
Imposta il livello di logging DEBUG
quando invii un job Spark che legge
i file di Cloud Storage.
gcloud dataproc jobs submit spark ...\ --driver-log-levels org.apache.spark=DEBUG,com.google.cloud.hadoop.gcsio=DEBUG
Esempio:
Imposta il livello di log root
su WARN
e il livello di log com.example
su INFO
.
gcloud dataproc jobs submit hadoop ...\ --driver-log-levels root=WARN,com.example=INFO
Livelli di logging degli esecutori Spark
Per configurare i livelli di logging degli esecutori Spark:
Prepara un file di configurazione log4j e caricalo su Cloud Storage
.Fai riferimento al file di configurazione quando invii il job.
Esempio:
gcloud dataproc jobs submit spark ...\ --file gs://my-bucket/path/spark-log4j.properties \ --properties spark.executor.extraJavaOptions=-Dlog4j.configuration=file:spark-log4j.properties
Spark scarica il file delle proprietà di Cloud Storage
directory di lavoro locale, indicata come file:<name>
in -Dlog4j.configuration
.
Log dei job Dataproc in Logging
Consulta la sezione Output e log dei job Dataproc per informazioni su come attivare i log del driver dei job Dataproc in Logging.
Accedi ai log dei job in Logging
Accedi ai log dei job Dataproc utilizzando Esplora log, il comando gcloud logging oppure l'API Logging.
Console
Log del driver del job Dataproc e dei container YARN sono elencati nella sezione Job Cloud Dataproc risorsa.
Esempio: log del driver del job dopo l'esecuzione di un Query di Esplora log con le selezioni seguenti:
- Risorsa:
Cloud Dataproc Job
- Nome log:
dataproc.job.driver
Esempio: log del contenitore YARN dopo l'esecuzione di una query di Esplora log con le seguenti selezioni:
- Risorsa:
Cloud Dataproc Job
- Nome log:
dataproc.job.yarn.container
gcloud
Puoi leggere le voci di log dei job utilizzando Comando gcloud logging read. Gli argomenti della risorsa devono essere racchiusi tra virgolette ("…"). Il seguente comando utilizza le etichette del cluster per filtrare le voci di log restituite.
gcloud logging read \ "resource.type=cloud_dataproc_job \ resource.labels.region=cluster-region \ resource.labels.job_id=my-job-id"
Output di esempio (parziale):
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
API REST
Puoi utilizzare l'API REST di Logging per elencare le voci di log (vedi entries.list).
Log dei cluster Dataproc in Logging
Dataproc esporta in Cloud Logging i seguenti log di Apache Hadoop, Spark, Hive, Zookeeper e di altri cluster Dataproc.
Tipo di log | Nome log | Descrizione |
---|---|---|
Log del daemon master | hadoop-hdfs hadoop-hdfs-namenode wasoop-hdfs-namenode secondario hadoop-hdfs-zkfc hadoop-yarn-resourcemanager hadoop-yarn-timelineserver hive-metastore hive-server2 mapred-mapred-historyserver custode zoo |
Nodo del journal Namenode HDFS Namenode secondario HDFS Controller di failover Zookeeper Resource Manager YARN Server sequenza temporale YARN Metastore Hive Server Hive 2 MapReduce server cronologia dei job Server Zookeeper |
Log del daemon worker |
hadoop-hdfs-datanode hadoop-yarn-nodemanager |
DataNode HDFS NodeManager YARN |
Log di sistema |
autoscaler google.dataproc.agent google.dataproc.startup |
Log dell'agente di scalabilità automatica di Dataproc Log dell'agente di Dataproc Log dello script di avvio di Dataproc + log dell'azione di inizializzazione |
Accedere ai log del cluster in Cloud Logging
Puoi accedere ai log del cluster Dataproc utilizzando Esplora log, il comando gcloud logging oppure l'API Logging.
Console
Effettua le seguenti selezioni di query per visualizzare dei log del cluster in Esplora log:
- Risorsa:
Cloud Dataproc Cluster
- Nome log: log name
gcloud
Puoi leggere le voci di log del cluster utilizzando il comando gcloud logging read. Gli argomenti della risorsa devono essere racchiusi tra virgolette ("..."). Il comando seguente utilizza le etichette del cluster per filtrare le voci di log restituite.
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
Esempio di output (parziale):
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
API REST
Puoi utilizzare l'API REST Logging per elencare le voci di log (vedi entries.list).
Autorizzazioni
Per scrivere log in Logging, l'account di servizio VM Dataproc deve avere il ruolo IAM logging.logWriter
. L'account di servizio Dataproc predefinito ha questo ruolo. Se utilizzi
un account di servizio personalizzato,
devi assegnare questo ruolo all'account di servizio.
Protezione dei log
Per impostazione predefinita, i log in Logging sono criptati at-rest. Puoi attivare le chiavi di crittografia gestite dal cliente (CMEK) per criptare i log. Per saperne di più sul supporto CMEK, vedi Gestire le chiavi che proteggono i dati del router dei log e Gestire le chiavi che proteggono i dati di archiviazione di Logging.
Passaggi successivi
- Esplora Google Cloud Observability