En este documento, se muestra cómo habilitar Dataproc Mejoras en el rendimiento de Spark para ayudar a tus trabajos de Spark de Dataproc procesar más datos en menos tiempo con menores costos.
Entre las mejoras de rendimiento de Spark de Dataproc, se incluyen las siguientes:
- Mejoras en el optimizador de Spark:
- Reglas del optimizador escritas para obtener mejores planes de Spark
- Rendimiento mejorado del conector de BigQuery de Dataproc cuando se usa en trabajos de Spark
- Mejoras en la ejecución de Spark:
- Mejoras en el motor de ejecución de Spark
Otras mejoras de rendimiento de Dataproc: Consulta la caché de clústeres de Dataproc, que ayuda a reducir la cantidad de tiempo que se dedica a acceder a los datos en Cloud Storage.
Cómo habilitar las mejoras en el rendimiento de Dataproc Spark
Puedes usar la consola de Google Cloud, Google Cloud CLI y Dataproc API para habilitar las mejoras de rendimiento de Dataproc Spark cuando creas un clúster de Dataproc en Compute Engine envías tu trabajo de Spark a tu clúster.
Console
Habilitar mejoras durante la creación del clúster
Realiza los siguientes pasos para habilitar la optimización y las mejoras de ejecución de Spark cuando crear un clúster de Dataproc. Las mejoras habilitadas permanecen vigentes para todos los trabajos de Spark enviados al clúster, a menos que inhabilites las mejoras para un trabajo específico cuando envías el trabajo. De forma predeterminada, las mejoras de rendimiento de Spark de Dataproc están inhabilitadas en un clúster de Dataproc.
- En la consola de Google Cloud, abre Dataproc Crea un clúster .
- En el formulario Crear clúster de Dataproc, haz clic en Crear, en la Clúster en Compute Engine.
- En la página Crear un clúster de Dataproc en Compute Engine, haz clic en el panel Personalizar clúster y, luego, desplázate hasta la sección Propiedades del clúster.
- Sigue estos pasos para habilitar las mejoras de la optimización de Spark:
- Haz clic en + AGREGAR PROPIEDADES.
- Selecciona spark en la lista Prefijo y, luego, agrega "spark.dataproc.enhanced.optimizer.enabled" en el campo Clave y “verdadero” en el campo Valor.
- Para habilitar las mejoras de ejecución de Spark, haz lo siguiente:
- Haz clic en + AGREGAR PROPIEDADES.
- Selecciona spark en la lista Prefijo y, luego, agrega "spark.dataproc.enhanced.execution.enabled" en el campo Clave y “verdadero” en el campo Valor.
- Sigue estos pasos para habilitar las mejoras de la optimización de Spark:
- Completa o confirma los otros campos de creación de clústeres y, luego, Haz clic en Crear.
Habilita las mejoras en el envío de trabajos
Realiza los siguientes pasos para habilitar las optimizaciones y las mejoras de ejecución de Spark para un trabajo de Spark. De forma predeterminada, las mejoras de rendimiento de Spark de Dataproc están inhabilitadas en los trabajos de Spark, a menos que habilites las mejoras cuando crees un clúster de trabajo o las habilites para un trabajo específico.
- En la consola de Google Cloud, abre la página Trabajos de Dataproc.
- En la página Trabajos, haz clic en Enviar trabajo y desplázate hasta el trabajo.
Properties.
- Para habilitar las mejoras de optimización de Spark, haz lo siguiente:
- Haz clic en + AGREGAR PROPIEDADES. Agrega "spark.dataproc.Enhanced.optimizer.enabled". en el campo Clave y “verdadero” en el campo Valor.
- Sigue estos pasos para habilitar las mejoras de ejecución de Spark:
- Haz clic en + AGREGAR PROPIEDADES.
- Agrega “spark.dataproc.enhanced.execution.enabled”. En el campo Clave y "verdadero" en el campo Valor.
- Para habilitar las mejoras de optimización de Spark, haz lo siguiente:
- Completa o confirma los otros campos de envío de trabajos y, luego, haz clic en Enviar.
gcloud
Habilitar mejoras durante la creación del clúster
Realiza los siguientes pasos para habilitar la optimización y las mejoras de ejecución de Spark cuando crear un clúster de Dataproc. Las mejoras habilitadas permanecen vigentes para todos los trabajos de Spark enviados al clúster, a menos que inhabilites las mejoras para un trabajo específico cuando envías el trabajo. De forma predeterminada, Dataproc Spark mejora el rendimiento están inhabilitadas en un clúster de Dataproc.
Ejecuta el siguiente comando: gcloud dataproc clusters create de forma local en una ventana de terminal o en Cloud Shell.
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --region=REGION \ --image-version=IMAGE \ --properties=PROPERTIES
Notas:
- CLUSTER_NAME: Es el nombre del clúster, que debe ser único dentro de un proyecto. El nombre debe comenzar con una letra minúscula y puede contener hasta 51 minúsculas. letras, números y guiones. No puede terminar con un guion. Es el nombre de una clúster borrado se puede volver a usar.
- PROJECT_ID: El proyecto que se asociará con el clúster.
- REGION: El
Región de Compute Engine
dónde se ubicará el clúster, como
us-central1
.- Puedes agregar la marca
--zone=ZONE
opcional para especificar una zona dentro de la región especificada, comous-central1-a
. Si no especificas una zona, Posición de zona automática de Dataproc el atributo selecciona una zona con la región especificada.
- Puedes agregar la marca
- IMAGE: Las mejoras en el rendimiento del optimizador y la ejecución de Spark de Dataproc están disponibles en las versiones de imagen
2.0.69+
y2.1.17+
de Dataproc y en versiones posteriores. Si omites esta marca, Dataproc seleccionará la última versión submenor del clúster predeterminado de Dataproc en Compute Engine del clúster (consulta la Versión predeterminada de la imagen de Dataproc). PROPERTIES:
- Para habilitar las mejoras de optimización de Spark, especifica lo siguiente:
spark:spark.dataproc.enhanced.optimizer.enabled=true
- Para habilitar las mejoras de ejecución de Spark, especifica lo siguiente:
spark:spark.dataproc.enhanced.execution.enabled=true
- Para habilitar la optimización y las mejoras de ejecución de Spark, especifica lo siguiente:
spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
Habilita las mejoras en el envío de trabajos
Realiza los siguientes pasos para habilitar las optimizaciones y las mejoras de ejecución de Spark para un trabajo de Spark. De forma predeterminada, las mejoras de rendimiento de Spark de Dataproc están inhabilitadas en los trabajos de Spark, a menos que habilites las mejoras cuando crees un clúster de trabajo o las habilites para un trabajo específico.
Ejecuta el siguiente comando gcloud dataproc jobs submit de forma local en una ventana de la terminal o en Cloud Shell.
gcloud dataproc jobs submit SPARK_JOB_TYPE \ --cluster=CLUSTER_NAME \ --region=REGION \ --properties=PROPERTIES
Notas:
- SPARK_JOB_TYPE: Especifica
spark
,pyspark
,spark-sql
ospark-r
. - CLUSTER_NAME: Es el nombre del trabajo en el que se ejecutará.
- REGION: Es la región en la que se encuentra el clúster.
PROPERTIES:
- Para habilitar las mejoras de optimización de Spark, especifica lo siguiente:
spark.dataproc.enhanced.optimizer.enabled=true
- Para habilitar las mejoras de ejecución de Spark, especifica lo siguiente:
spark.dataproc.enhanced.execution.enabled=true
- Para habilitar la optimización y las mejoras de ejecución de Spark, especifica lo siguiente:
spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled
- SPARK_JOB_TYPE: Especifica
API
Habilita las mejoras durante la creación del clúster
Realiza los siguientes pasos para habilitar la optimización y las mejoras de ejecución de Spark cuando crear un clúster de Dataproc. Las mejoras habilitadas permanecen vigentes para todos los trabajos de Spark que se envían al clúster, a menos que inhabilites las mejoras para un trabajo específico cuando lo envíes. De forma predeterminada, Dataproc Spark mejora el rendimiento están inhabilitadas en un clúster de Dataproc.
Especifica lo siguiente:
SoftwareConfig.properties
como parte de una solicitudclusters.create
:- Para habilitar las mejoras de la optimización de Spark, especifica lo siguiente:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true"
- Para habilitar las mejoras de ejecución de Spark, especifica lo siguiente:
"spark:spark.dataproc.enhanced.execution.enabled": "true"
- Para habilitar la optimización y las mejoras de ejecución de Spark, especifica lo siguiente:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
Habilita las mejoras en el envío de trabajos
Realiza los siguientes pasos para habilitar las optimizaciones y las mejoras de ejecución de Spark para un trabajo de Spark. De forma predeterminada, las mejoras de rendimiento de Spark de Dataproc están inhabilitadas en los trabajos de Spark, a menos que habilites las mejoras cuando crees un clúster de trabajo o las habilites para un trabajo específico.
Especifica el siguiente
properties
para un SparkJob, PySparkJob, SparkSqlJob o SparkRJob como parte de unajobs.submit
solicitud:- Para habilitar las mejoras de la optimización de Spark, especifica lo siguiente:
"spark.dataproc.enhanced.optimizer.enabled=true"
- Para habilitar las mejoras de ejecución de Spark, especifica lo siguiente:
"spark.dataproc.enhanced.execution.enabled=true"
- Para habilitar la optimización de Spark y las mejoras de ejecución, especifica lo siguiente:
"spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"