Cuando envías un trabajo de Managed Service para Apache Spark, Managed Service para Apache Spark recopila automáticamente el resultado del trabajo y lo pone a tu disposición. Esto significa que puedes revisar rápidamente el resultado del trabajo sin tener que mantener una conexión al clúster mientras se ejecutan tus trabajos o revisar archivos de registro complicados.
Registros de Spark
Existen 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 el resultado del trabajo; los registros del ejecutor de Spark contienen el resultado del ejecutable o del selector del trabajo, como un mensaje spark-submit "Submitted application ... ", y pueden ser útiles para depurar fallas del trabajo.
El controlador de trabajos de Managed Service para Apache Spark, que es distinto del controlador de Spark,
es un iniciador para muchos tipos de trabajos. Cuando se inician los trabajos de Spark, se ejecuta como un
wrapper en el ejecutable spark-submit subyacente, que inicia el controlador de
Spark. El controlador de Spark ejecuta el trabajo en el clúster de Managed Service para Apache Spark en el modo
client o cluster de Spark:
Modo
client: El controlador de Spark ejecuta el trabajo en el procesospark-submit, y los registros de Spark se envían al controlador de trabajos de Managed Service para Apache Spark.Modo
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 trabajos de Managed Service para Apache Spark.
Descripción general de las propiedades de los trabajos de Managed Service para Apache Spark y Spark
| Propiedad | Valor | Default | Descripción |
|---|---|---|---|
dataproc:dataproc.logging.stackdriver.job.driver.enable |
True o False | falso | Se debe configurar cuando se crea el clúster. Cuando es true,
el resultado del controlador de trabajos se encuentra en Logging,
asociado con el recurso del trabajo; cuando es false, el resultado del controlador de trabajos
no se encuentra en Logging.Nota: Los siguientes parámetros de configuración de propiedades del clúster también son necesarios para habilitar los registros del controlador de trabajos en Logging y se establecen 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 |
True o False | falso | Se debe configurar cuando se crea el clúster.
Cuando es true, los registros del contenedor de YARN del trabajo se asocian
con el recurso del trabajo; cuando es false, los registros del contenedor de YARN del trabajo
se asocian con el recurso del clúster. |
spark:spark.submit.deployMode |
cliente o clúster | cliente | Controla el modo client o cluster de Spark. |
Trabajos de Spark enviados con la API de Managed Service para Apache Spark jobs
En las tablas de esta sección, se muestra el efecto de los diferentes parámetros de configuración de las propiedades en el
destino del resultado del controlador de trabajos de Managed Service para Apache Spark cuando se envían trabajos
a través de la API de jobs de Managed Service para Apache Spark, que incluye el envío de trabajos a través de la
consola deGoogle Cloud , gcloud CLI y las bibliotecas cliente de Cloud.
Las propiedades de Managed Service para Apache Spark y Spark
que se indican se pueden configurar con la marca --properties cuando se crea un clúster y se aplicarán
a todos los trabajos de Spark que se ejecuten en el clúster. Las propiedades de Spark también se pueden configurar con la
marca --properties (sin el prefijo "spark:") cuando se envía un trabajo
a la API de Managed Service para Apache Spark jobs y se aplicarán solo al trabajo.
Resultado del controlador de trabajos de Managed Service para Apache Spark
En las siguientes tablas, se muestra el efecto de los diferentes parámetros de configuración de las propiedades en el destino de la salida del controlador de trabajos de Managed Service para Apache Spark.
dataproc: |
Salida |
|---|---|
| false (predeterminado) |
|
| verdadero |
|
Registros del controlador de Spark
En las siguientes tablas, se muestra el efecto de los diferentes parámetros de configuración de las propiedades en el destino de los registros del controlador de Spark.
spark: |
dataproc: |
dataproc: |
Resultado del controlador |
|---|---|---|---|
| cliente | false (predeterminado) | True o False |
|
| cliente | verdadero | True o False |
|
| clúster | false (predeterminado) | falso |
|
| clúster | verdadero | verdadero |
|
Registros del ejecutor de Spark
En las siguientes tablas, se muestra el efecto de los diferentes parámetros de configuración de propiedades en el destino de los registros del ejecutor de Spark.
dataproc: |
Registro del ejecutor |
|---|---|
| false (predeterminado) | En Logging: yarn-userlogs en el recurso del clúster |
| verdadero | En Logging dataproc.job.yarn.container, en el recurso de trabajo |
Trabajos de Spark enviados sin usar la API de jobs de Managed Service para Apache Spark
En esta sección, se muestra el efecto de diferentes parámetros de configuración de propiedades en el
destino de los registros de trabajos de Spark cuando se envían trabajos
sin usar la API de jobs de Managed Service para Apache Spark, por ejemplo, cuando se envía
un trabajo directamente en un nodo de clúster con spark-submit o cuando se usa un notebook de Jupyter
o Zeppelin. Estos trabajos no tienen IDs de trabajo ni controladores de Managed Service para Apache Spark.
Registros del controlador de Spark
En las siguientes tablas, se muestra el efecto de los diferentes parámetros de configuración de las propiedades en el
destino de los registros del controlador de Spark para los trabajos que no se envían a través de la API de jobs de Managed Service para Apache Spark.
spark: |
Resultado del controlador |
|---|---|
| cliente |
|
| clúster |
|
Registros del ejecutor de Spark
Cuando los trabajos de Spark no se envían a través de la API de jobs de Managed Service para Apache Spark, los registros del ejecutor
se encuentran en Logging yarn-userlogs, en el recurso del clúster.
Visualiza el resultado del trabajo
Puedes acceder al resultado del trabajo de Managed Service para Apache Spark en la consola de Google Cloud , gcloud CLI, Cloud Storage o Logging.
Console
Para ver el resultado del trabajo, ve a la sección Trabajos de Managed Service para Apache Spark de tu proyecto y, luego, haz clic en el ID del trabajo para ver el resultado.
Si el trabajo se está ejecutando, el resultado se actualiza de forma periódica con contenido nuevo.
Comando de gcloud
Cuando envías un trabajo con el comando
gcloud dataproc jobs submit,
el resultado del trabajo se muestra en la consola. Puedes "volver a unirte"
al resultado más adelante, en una computadora diferente o en
una ventana nueva pasando el ID de tu trabajo al
comando
gcloud dataproc jobs wait. El ID del trabajo es un GUID, como 5c1754a5-34f7-4553-b667-8a1199cb9cab. A continuación, se muestra 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
El resultado del trabajo se almacena en Cloud Storage, ya sea en el bucket de etapa de pruebas o en el bucket que especificaste cuando creaste el clúster. Se proporciona un vínculo al resultado del trabajo en Cloud Storage en el campo Job.driverOutputResourceUri que devuelve lo siguiente:
- Una solicitud a la API de jobs.get
- Un comando gcloud dataproc jobs describe job-id
$ gcloud dataproc jobs describe spark-pi ... driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput ...