Control de versiones de Dataproc

Dataproc usa imágenes para unir los conectores útiles de Google Cloud Platform y los componentes de Apache Spark y Apache Hadoop en un paquete que se puede implementar en un clúster de Dataproc. Estas imágenes contienen el sistema operativo base (Debian o Ubuntu) para el clúster, junto con los componentes principales y opcionales necesarios a fin de ejecutar trabajos, como Spark, Hadoop y Hive. Estas imágenes se actualizan periódicamente para incluir nuevas mejoras y atributos. El control de versiones de Dataproc te permite seleccionar conjuntos de versiones de software cuando creas clústeres.

Cómo funciona el control de versiones

Cuando se crea una imagen, se asigna un número de Versión de imagen en el siguiente formato:

version_major.version_minor.version_sub_minor-os_distribution

Las siguientes distribuciones de SO actualmente se mantienen:

Código de distribución de SO Distribución de SO
debian12 Debian 12
debian10 Debian 10
debian11 Debian 11
rocky8 Rocky Linux 8
rocky9 Rocky Linux 9
ubuntu18 Ubuntu 18.04 LTS
ubuntu20 LTS de Ubuntu 20.4
ubuntu22 LTS de Ubuntu 22.04

Consulta las versiones anteriores de la imagen para las distribuciones del SO admitidas.

La práctica recomendada es especificar la versión de la imagen major.minor para los entornos de producción o cuando es importante la compatibilidad con versiones de componentes específicos. Las distribuciones del SO y subsecundarias se configuran automáticamente a la última versión semanal.

Cómo seleccionar versiones

Cuando creas un clúster de Dataproc nuevo, el último clúster disponible Debian se usan de forma predeterminada. Puedes seleccionar una versión con imágenes de Debian, Rocky Linux o Ubuntu cuando crees un clúster (consulta la Lista de versiones de imágenes de Dataproc). Cuando especificas imágenes basadas en Debian, puedes omitir el sufijo del código de distribución del SO, por ejemplo, si especificas 2.0 para seleccionar la imagen 2.0-debian10. Se debe usar el sufijo del SO para seleccionar un sistema Rocky Linux. Imagen basada en Ubuntu, por ejemplo, si especificas 2.0-ubuntu18.

Comando de gcloud

Cuando usas el comando gcloud dataproc clusters create, puedes usar el argumento --image-version a fin de especificar una versión con imágenes para el clúster nuevo.

Ejemplo de imagen de Debian:

gcloud dataproc clusters create cluster-name \
    --image-version=2.0 \
    --region=region

Ejemplo de imagen de Ubuntu:

gcloud dataproc clusters create cluster-name \
    --image-version=2.0-ubuntu18 \
    --region=region

La práctica recomendada es omitir la versión submenor para que se use la última versión submenor. Sin embargo, si es necesario, se puede especificar la versión submenor, por ejemplo, “2.0.20”.

Puedes verificar tu versión actual con Google Cloud CLI.

gcloud dataproc clusters describe cluster-name \
    --region=region

API de REST

Puedes especificar el campo SoftwareConfig imageVersion como parte de una solicitud a la API cluster.create.

Ejemplo

POST /v1/projects/project-id/regions/us-central1/clusters/
{
  "projectId": "project-id",
  "clusterName": "example-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-b"
    },
    "masterConfig": {
      ...
      }
    },
    "workerConfig": {
      ...
      }
    },
    "softwareConfig": {
      "imageVersion": "2.0"
    }
  }
}
  

Console

Abre la página Crear un clúster de Dataproc. Se selecciona el panel Configurar clúster. El campo Tipo de imagen y Versión en la sección Control de versiones muestra la imagen que se usará cuando se crea el clúster. También se muestra la fecha de lanzamiento de la imagen. Inicialmente, la imagen predeterminada, la última versión disponible de Debian, se muestra como seleccionada. Haz clic en CHANGE para ver una lista de las imágenes disponibles. Puedes seleccionar una imagen personalizada o estándar para usar en el clúster.

Cuando se crean versiones nuevas

Periódicamente, se crean versiones principales nuevas para incorporar una o más de las siguientes opciones:

  • Versiones principales de:
    • Spark, Hadoop y otros componentes de macrodatos
    • Conectores de Google Cloud
  • Actualizaciones o cambios importantes en la funcionalidad de Dataproc

Las nuevas versiones preliminares (con el sufijo -RC) se lanzan antes del lanzamiento de una nueva versión principal:

  • Las imágenes de vista previa no están diseñadas para usarse en cargas de trabajo de producción.
  • Es posible que las versiones de componentes de la imagen de vista previa se actualicen a la versión de componente más reciente disponible en la versión de imagen de DG posterior a la vista previa.

Las versiones secundarias nuevas se crean periódicamente para incorporar una o más de las siguientes opciones:

  • Actualizaciones y versiones secundarias de:
    • Spark, Hadoop y otros componentes de macrodatos
    • Conectores de Google Cloud
  • Actualizaciones o cambios menores en la funcionalidad de Dataproc

Cuando se crea un versión secundaria nueva, su imagen de Debian se convierte en el valor predeterminado para la versión principal y representa la última versión de la versión principal.

Periódicamente, se crean versiones submenores nuevas para incorporar una o más de las siguientes opciones:

  • Parches o correcciones para un componente en la imagen
  • Actualizaciones de versiones secundarias de componentes

Versiones con imágenes y compatibilidad con Dataproc

Las versiones con imágenes secundarias son compatibles durante 24 meses después del lanzamiento inicial de DG (disponibilidad general). Durante este período, los clústeres que usan estas versiones de imagen son aptos para la asistencia (para recibir correcciones, vuelve a crear el clúster con la versión de imagen subsecundaria más reciente compatible). Una vez que se cerró la ventana de asistencia, los clústeres que usan las versiones de imagen no son aptos para asistencia.

Versiones de imagen anteriores

Distribuciones de SO admitidas previamente

Las siguientes distribuciones de SO se admitían previamente:

Código de distribución de SO Distribución de SO Lastltimo parche (fin de asistencia)
debian9 Debian 9 10 de julio de 2020
deb8 Debian 8 26 de octubre de 2018

Versiones de imagen sin distribución explícita de SO

Antes del 16 de agosto de 2018, las versiones de imágenes se compilaban con Debian 8 y omitían el código de distribución del SO. Se especifican en el siguiente formato:

version_major.version_minor.version_sub_minor

0.1 y 0.2

Las versiones con imágenes lanzadas como Alfa o Beta antes de la disponibilidad general 1.0 de Dataproc no están sujetas a la política de asistencia de Dataproc.

Notas importantes sobre el control de versiones

  • Las versiones de imagen contienen los siguientes componentes:
  • Tus clústeres de Dataproc no se actualizan automáticamente cuando se lanzan versiones de imagen nuevas.
    • Recomendaciones:
    • Ejecuta clústeres con la versión versión submenor de la imagen. Los metadatos de imagen incluyen una etiqueta previous-subminor, que se establece en true si la no usa la última versión de la imagen submenor.
      • Para ver los metadatos de las imágenes, sigue estos pasos:
        1. Ejecuta el siguiente comando: gcloud compute images list --filter para mostrar el nombre del recurso de una imagen de Dataproc.
          gcloud compute images list --project=PROJECT_NAME --filter="labels.goog-dataproc-version ~ ^IMAGE_VERSION (such as 2.2.16-debian12)"
          
        2. Ejecuta el siguiente comando gcloud compute images describe. para ver los metadatos de las imágenes.
          gcloud compute images describe --project=PROJECT_NAME IMAGE_NAME"
          
    • Prueba y valida que tus aplicaciones se ejecuten correctamente en clústeres creados con versiones de imagen nuevas, en especial cuando uses versiones principales nuevas.