Cuando envías un trabajo de Dataproc, Dataproc recopila automáticamente el resultado del trabajo y lo pone a tu disposición. Esto significa que puedes revisar con rapidez el resultado del trabajo sin tener que mantener una conexión con el clúster mientras se ejecutan tus trabajos o buscar en 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 resultados del trabajo; los registros del ejecutor de Spark contienen resultados ejecutables o del selector de trabajos, como un mensaje spark-submit
“Solicitud enviada xxx”, y pueden ser útiles para depurar fallas del trabajo.
El controlador del trabajo de Dataproc, que es diferente del controlador de Spark, es un selector para muchos tipos de trabajos. Cuando se inician 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 Dataproc en 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 del trabajo de Dataproc.Modo
cluster
: El controlador de Spark ejecuta el trabajo en un contenedor YARN. Los registros del controlador de Spark no están disponibles para el controlador de trabajos de Dataproc.
Descripción general de las propiedades del trabajo de Dataproc y Spark
Propiedad | Valor | Predeterminada | Descripción |
---|---|---|---|
dataproc:dataproc.logging.stackdriver.job.driver.enable |
True o False | false | Se debe configurar en el momento de la creación del clúster. Cuando es true , el resultado del controlador del trabajo está en Logging, asociado con el recurso del trabajo. Cuando es false , el resultado del controlador del trabajo no está en Logging.Nota: La siguiente configuración de propiedades del clúster también es necesaria para habilitar los registros del controlador de trabajos en Logging. Se establece 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 | false | Se debe configurar en el momento de la creación del 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 | client | Controla los modos client o cluster de Spark. |
Trabajos de Spark enviados con la API de jobs
de Dataproc
En las tablas de esta sección, se enumeran los efectos de las diferentes opciones de configuración de propiedades en el destino del resultado del controlador de trabajos de Dataproc cuando los trabajos se envían a través de la API de jobs
de Dataproc, que incluye el envío de trabajos a través de la consola de Google Cloud, gcloud CLI y las bibliotecas cliente de Cloud.
Las propiedades de Dataproc y Spark que se enumeran 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 ejecutan en el clúster. Las propiedades de Spark también se pueden configurar con la marca --properties
(sin el prefijo “spark:”) cuando un trabajo se envía a la API jobs
de Dataproc y solo se aplicarán al trabajo.
Resultado del controlador del trabajo de Dataproc
En las siguientes tablas, se muestra el efecto de las diferentes opciones de configuración de propiedades en el destino del resultado del controlador del trabajo de Dataproc.
dataproc: |
Salida |
---|---|
false (predeterminado) |
|
true |
|
Registros del controlador de Spark
En las siguientes tablas, se muestra el efecto de las diferentes opciones de configuración de las propiedades en el destino de los registros del controlador de Spark.
spark: |
dataproc: |
dataproc: |
Salida del controlador |
---|---|---|---|
client | false (predeterminado) | True o False |
|
client | true | True o False |
|
clúster | false (predeterminado) | false |
|
clúster | true | true |
|
Registros del ejecutor de Spark
En las siguientes tablas, se muestra el efecto de las diferentes opciones de configuración de propiedades en el destino de los registros del ejecutor de Spark.
dataproc: |
Registro del ejecutor |
---|---|
false (predeterminado) | En Logging, ingresa yarn-userlogs en el recurso del clúster. |
true | En el registro dataproc.job.yarn.container , en el recurso de trabajo |
Trabajos de Spark enviados sin usar la API de jobs
de Dataproc
En esta sección, se enumera el efecto de las diferentes opciones de configuración de las propiedades en el destino de los registros de trabajos de Spark cuando los trabajos se envían sin usar la API de jobs
de Dataproc, por ejemplo, cuando se envía un trabajo de forma directa en un nodo del clúster con spark-submit
o cuando se usa un notebook de Jupyter o Zeppelin. Estos trabajos no tienen ID ni controladores de trabajo de Dataproc.
Registros del controlador de Spark
En las siguientes tablas, se muestra el efecto de las diferentes opciones de configuración de las propiedades en el destino de los registros del controlador de Spark para trabajos que no se enviaron a través de la API jobs
de Dataproc.
spark: |
Salida del controlador |
---|---|
client |
|
clúster |
|
Registros del ejecutor de Spark
Cuando los trabajos de Spark no se envían a través de la API jobs
de Dataproc, los registros del ejecutor están en Logging yarn-userlogs
en el recurso del clúster.
Ver el resultado del trabajo
Puedes acceder al resultado del trabajo de Dataproc en la consola de Google Cloud, gcloud CLI, Cloud Storage o Logging.
Consola
Para ver el resultado del trabajo, ve a la sección Trabajos de Dataproc de tu proyecto y, luego, haz clic en ID del trabajo.
Si el trabajo está en ejecución, el resultado del trabajo 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 unir” el resultado más adelante, en una computadora diferente o en una ventana nueva si pasas el ID de tu trabajo al comando gcloud dataproc jobs wait. El ID del trabajo es un GUID, como 5c1754a5-34f7-4553-b667-8a1199cb9cab
. Este es 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 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 muestra:
- 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 ...