Cuando envías una tarea de Dataproc, Dataproc recoge automáticamente el resultado de la tarea y lo pone a tu disposición. Esto significa que puedes revisar rápidamente la salida de los trabajos sin tener que mantener una conexión con el clúster mientras se ejecutan los trabajos o consultar archivos de registro complicados.
Registros de Spark
Hay dos tipos de registros de Spark: los registros del controlador de Spark y los registros del ejecutor de Spark.
Los registros del controlador de Spark contienen la salida de los trabajos, mientras que los registros del ejecutor de Spark contienen la salida del ejecutable o del lanzador de los trabajos, como el mensaje spark-submit
"Submitted application xxx" (Se ha enviado la aplicación xxx). Estos registros pueden ser útiles para depurar errores de los trabajos.
El controlador de tareas de Dataproc, que es distinto del controlador de Spark, es un lanzador de muchos tipos de tareas. Al iniciar tareas de Spark, se ejecuta como un envoltorio en el ejecutable spark-submit
subyacente, que inicia el controlador de Spark. El controlador de Spark ejecuta la tarea en el clúster de Dataproc en modo Spark
client
o cluster
:
Modo
client
: el controlador de Spark ejecuta la tarea en el procesospark-submit
y los registros de Spark se envían al controlador de la tarea de Dataproc.cluster
: el controlador de Spark ejecuta el trabajo en un contenedor de YARN. Los registros del controlador de Spark no están disponibles para el controlador de la tarea de Dataproc.
Información general sobre las propiedades de las tareas de Dataproc y Spark
Propiedad | Valor | Predeterminado | Descripción |
---|---|---|---|
dataproc:dataproc.logging.stackdriver.job.driver.enable |
verdadero o falso | falso | Debe definirse al crear el clúster. Cuando true ,
la salida del controlador de tareas está en Logging,
asociada al recurso de la tarea; cuando false , la salida del controlador de tareas
no está en Logging.Nota: Los siguientes ajustes de propiedades de clúster también son necesarios para habilitar los registros de controladores de trabajos en Logging y se definen de forma predeterminada cuando se crea un clúster: dataproc:dataproc.logging.stackdriver.enable=true
y dataproc:jobs.file-backed-output.enable=true .
|
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable |
verdadero o falso | falso | Debe definirse al crear el clúster.
Cuando true , los registros de contenedores de YARN de la tarea se asocian al recurso de la tarea. Cuando false , los registros de contenedores de YARN de la tarea se asocian al recurso del clúster. |
spark:spark.submit.deployMode |
cliente o clúster | client | Controla el modo client o cluster de Spark. |
Tareas de Spark enviadas mediante la API jobs
de Dataproc
En las tablas de esta sección se indica el efecto de los distintos ajustes de propiedades en el destino de la salida del controlador de tareas de Dataproc cuando se envían tareas a través de la API jobs
de Dataproc, lo que incluye el envío de tareas a través de la consolaGoogle Cloud , la CLI de gcloud y las bibliotecas de cliente de Cloud.
Las propiedades de Dataproc y Spark
que se indican se pueden definir con la marca --properties
al crear un clúster y se aplicarán
a todas las tareas de Spark que se ejecuten en el clúster. Las propiedades de Spark también se pueden definir con la marca
--properties
(sin el prefijo "spark:") al enviar una tarea a la API jobs
de Dataproc y se aplicarán solo a la tarea.
Salida del controlador de tareas de Dataproc
En las siguientes tablas se muestra el efecto de los diferentes ajustes de propiedad en el destino de la salida del controlador de trabajos de Dataproc.
dataproc: |
Salida |
---|---|
false (valor predeterminado) |
|
true |
|
Registros del controlador de Spark
En las siguientes tablas se muestra el efecto de los diferentes ajustes de propiedad en el destino de los registros del controlador de Spark.
spark: |
dataproc: |
dataproc: |
Salida del controlador |
---|---|---|---|
client | false (valor predeterminado) | verdadero o falso |
|
client | true | verdadero o falso |
|
clúster | false (valor predeterminado) | falso |
|
clúster | true | true |
|
Registros del ejecutor de Spark
En las siguientes tablas se muestra el efecto de las diferentes configuraciones de propiedades en el destino de los registros del ejecutor de Spark.
dataproc: |
Registro del ejecutor |
---|---|
false (valor predeterminado) | En Registro: yarn-userlogs en el recurso de clúster |
true | En Logging dataproc.job.yarn.container , en el recurso de trabajo |
Tareas de Spark enviadas sin usar la API jobs
de Dataproc
En esta sección se indica el efecto de los diferentes ajustes de propiedades en el destino de los registros de trabajos de Spark cuando se envían trabajos sin usar la API jobs
de Dataproc. Por ejemplo, cuando se envía un trabajo directamente en un nodo de clúster mediante spark-submit
o cuando se usa un cuaderno de Jupyter o Zeppelin. Estos trabajos no tienen IDs de trabajo ni controladores de Dataproc.
Registros del controlador de Spark
En las siguientes tablas se muestra el efecto de los diferentes ajustes de propiedades en el destino de los registros del controlador de Spark de los trabajos que no se envían a través de la API de Dataproc jobs
.
spark: |
Salida del controlador |
---|---|
client |
|
clúster |
|
Registros del ejecutor de Spark
Cuando las tareas de Spark no se envían a través de la API de jobs
de Dataproc, los registros del ejecutor se encuentran en Logging yarn-userlogs
en el recurso de clúster.
Ver la salida de una tarea
Puedes acceder a la salida de las tareas de Dataproc en la Google Cloud consola, la CLI de gcloud, Cloud Storage o Logging.
Consola
Para ver el resultado de un trabajo, vaya a la sección Trabajos de Dataproc de su proyecto y, a continuación, haga clic en el ID del trabajo para ver el resultado.

Si el trabajo está en curso, el resultado se actualiza periódicamente con contenido nuevo.
Comando gcloud
Cuando envías una tarea con el comando
gcloud dataproc jobs submit, el resultado de la tarea se muestra en la consola. Puedes volver a unirte a la salida más adelante, en otro ordenador o en una ventana nueva, pasando el ID de tu trabajo al comando gcloud dataproc jobs wait. El ID de trabajo es un GUID,
como 5c1754a5-34f7-4553-b667-8a1199cb9cab
. Aquí tienes un ejemplo.
gcloud dataproc jobs wait 5c1754a5-34f7-4553-b667-8a1199cb9cab \ --project my-project-id --region my-cluster-region
Waiting for job output... ... INFO gcs.GoogleHadoopFileSystemBase: GHFS version: 1.4.2-hadoop2 ... 16:47:45 INFO client.RMProxy: Connecting to ResourceManager at my-test-cluster-m/ ...
Cloud Storage
La salida de los trabajos se almacena en Cloud Storage, ya sea en el segmento de almacenamiento provisional o en el segmento que especificaste al crear el clúster. Se proporciona un enlace a los resultados de la tarea en Cloud Storage en el campo Job.driverOutputResourceUri devuelto por:
- una solicitud a la API jobs.get.
- un comando gcloud dataproc jobs describe job-id.
$ gcloud dataproc jobs describe spark-pi ... driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput ...