Descripción general
Después de borrar los clústeres de Dataproc, los usuarios a menudo desean ver los archivos del historial de trabajos para diagnósticos o para otros fines. El servidor de historial persistente de Dataproc (PHS) proporciona una IU para ver el historial de trabajos de los trabajos que se ejecutan en los clústeres activos y borrados de Dataproc.
El servidor de historial persistente se ejecuta en un clúster de Dataproc de nodo único, almacena y accede a los archivos del historial de trabajos en Cloud Storage y admite los trabajos MapReduce, Spark y Pig. Esta función está disponible en la versión 1.4-debian10 de Dataproc y las posteriores.

Configura clusteres de trabajo
Especifica la siguiente marca y propiedades del clúster cuando creas un clúster de trabajos de Dataproc que almacenará los registros de trabajos a los que un clúster del servidor de historial persistente accederá y mostrará.
--enable-component-gateway
: Marca obligatoria. Esta marca debe usarse para habilitar la puerta de enlace de componentes.dataproc:job.history.to-gcs.enabled
: Propiedad del clúster obligatoria. Esta propiedad debe establecerse como "true" para habilitar el almacenamiento del historial de trabajos en Cloud Storage.spark:spark.history.fs.logDirectory
yspark:spark.eventLog.dir
Propiedades de clústeres opcionales. Estas marcas especifican la ubicación para escribir el historial de trabajos y los registros de eventos de Spark, respectivamente. Si se usa, ambas marcas deben configurarse y apuntar a directorios dentro del mismo depósito.
Propiedades de muestra:
spark:spark.history.fs.logDirectory=gs://bucket-name/directory-name/spark-job-history, spark:spark.eventLog.dir=gs://bucket-name/directory-name/spark-job-history
mapred:mapreduce.jobhistory.intermediate-done-dir
ymapred:mapreduce.jobhistory.done-dir
: Propiedades de clústeres opcionales. Estas marcas especifican la ubicación de Cloud Storage para escribir archivos intermedios y finales del historial de trabajos de MapReduce, respectivamente. Si se usa, ambas marcas deben configurarse y apuntar a directorios dentro del mismo depósito. La ubicación intermediamapreduce.jobhistory.intermediate-done-dir
es el almacenamiento temporal. Los archivos intermedios se trasladan a la ubicaciónmapreduce.jobhistory.done-dir
cuando se completa el trabajo de MapReduce.
Propiedades de muestra:
mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/directory-name/mapreduce-job-history/done, mapred:mapreduce.jobhistory.intermediate-done-dir=gs://bucket-name/directory-name/mapreduce-job-history/intermediate-done
- Ejecuta el comando
gcloud dataproc clusters create
para crear un clúster de trabajos. El clúster debe crearse con la imagen 1.4-debian10 o posterior. Nota: Para facilitar la lectura, los valores de las marcas--property
se muestran a continuación en líneas separadas. Cuando ejecutas el comando, todos los valores de la marca--property
separados por comas se deben especificar en una línea.gcloud dataproc clusters create cluster-name \ --region=region \ --image-version=1.4-debian10 \ --enable-component-gateway \ --properties='dataproc:job.history.to-gcs.enabled=true, spark:spark.history.fs.logDirectory=gs://bucket-name/directory-name/spark-job-history, spark:spark.eventLog.dir=gs://bucket-name/directory/spark-job-history, mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/directory/mapreduce-job-history/done, mapred:mapreduce.jobhistory.intermediate-done-dir=gs://bucket-name/directory-name/mapreduce-job-history/intermediate-done'
gcloud dataproc clusters create cluster-name \ --region=region \ --image-version=1.4-debian10 \ --enable-component-gateway \ --properties='dataproc:job.history.to-gcs.enabled=true'
Si usas el comando simplificado que se muestra arriba, los archivos de historial de trabajos se guardarán en el bucket temporal de Dataproc en los directorios predeterminados: /spark-job-history
, /mapreduce-job-history/done
, y /mapreduce-job-history/intermediate-done
.
La ubicación del bucket temporal de Cloud Storage se muestra en el resultado del comando gcloud dataproc clusters describe cluster-name --region=region
. La ubicación de Cloud Storage de los archivos del historial de trabajos también se muestra en los archivos /etc/spark/conf/spark-defaults.conf
y /etc/hadoop/conf/mapred-site.xml
del clúster.
Ejemplos después de SSH en el nodo principal del clúster de trabajos:
cat /etc/spark/conf/spark-defaults.conf ... spark.history.fs.logDirectory=gs://temp-bucket/spark-job-history spark.eventLog.dir=gs://temp-bucket/spark-job-history
cat /etc/hadoop/conf/mapred-site.xml ... <property> <name>mapreduce.jobhistory.done-dir</name> <value>gs://temp-bucket/mapreduce-job-history/done</value> </property> <property> <name>mapreduce.jobhistory.intermediate-done-dir</name> <value>gs://temp-bucket/mapreduce-job-history/done_intermediate</value> </property>
Configura un servidor de historial persistente
Cuando creas un clúster de nodo único de PHS, debes especificar la siguiente marca y propiedades del clúster:
--enable-component-gateway
: Marca obligatoria. Esta marca debe usarse para habilitar la puerta de enlace de componentes.spark:spark.history.fs.logDirectory
: propiedad de clúster obligatoria para habilitar el historial de trabajos de Spark persistente. Esta propiedad especifica el depósito y los directorios de Cloud Storage en los que las PHS accederán a los registros del historial de trabajos de Spark escritos por los clústeres de trabajo (consulta Configura clústeres de trabajos). En lugar de especificar directorios de depósitos específicos, usa asteriscos como comodines (por ejemplo,gs://bucket-name/*/spark-job-history
) para permitir que el servidor PHS coincida con varios directorios del depósito especificado escrito con diferentes clústeres de trabajo (pero, consulta Consideración de la eficiencia: usar comodines de la ruta de acceso).mapred:mapreduce.jobhistory.read-only.dir-pattern
: Propiedad de clúster obligatoria para habilitar el historial de trabajos persistente de MapReduce. Esta propiedad especifica los directorios de depósito de Cloud Storage en los que la PHS accederá a los registros del historial de trabajos de MapReduce escritos por clústeres de trabajo (consulta Configura clústeres de trabajos). En lugar de especificar directorios de depósitos específicos, usa asteriscos como comodines, (por ejemplo,gs://bucket-name/*/mapreduce-job-history/done
) para permitir que el servidor PHS coincida con varios directorios del depósito especificado escrito por diferentes clústeres de trabajo (pero consulta la Consideración de la eficiencia: usar comodines de la ruta de acceso)
- Ejecuta el comando
gcloud dataproc clusters create
para crear un clúster de un solo nodo PHS de Dataproc.gcloud dataproc clusters create cluster-name \ --single-node \ --region=region \ --image-version=1.4-debian10 \ --enable-component-gateway \ --properties='spark:spark.history.fs.logDirectory=gs://bucket-name/*/spark-job-history,mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/*/mapreduce-job-history/done'
Visualiza los archivos del historial de trabajos
Ve a la página Detalles del clúster de nodo único del PHS en Cloud Console y, luego, haz clic en la pestaña “INTERFACES WEB”.
Haz clic en “MapReduce Job History” o “Spark History Server” para ver las IU del historial de trabajos de MapReduce y de Spark.
Ejemplo:
En la siguiente captura de pantalla, se muestra la IU del servidor de historial de PHS que muestra los vínculos a los trabajos de Spark que se ejecutan en job-cluster-1 y job-cluster-2 después de configurar
spark.history.fs.logDirectory
yspark:spark.eventLog.dir
de los clústeres de trabajo y las ubicacionesspark.history.fs.logDirectory
del clúster de PHS de la siguiente manera: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