Types de machines compatibles

Les clusters Managed Service pour Apache Spark sont basés sur des instances Compute Engine. Les types de machines définissent les ressources matérielles virtualisées disponibles pour une instance. Compute Engine propose à la fois des types de machines prédéfinis et des types de machines personnalisés. Les clusters Managed Service pour Apache Spark peuvent utiliser aussi bien des types prédéfinis que des types personnalisés, et ce, pour le nœud maître et les nœuds de calcul.

Les clusters Managed Service pour Apache Spark sont compatibles avec les types de machines Compute Engine prédéfinis suivants (la disponibilité des types de machines varie selon la région) :

  • Types de machines à usage général, y compris les types de machines N1, N2, N2D, E2, C3, C4, N4 et N4D (Managed Service pour Apache Spark est également compatible avec les types de machines personnalisés N1, N2, N2D, E2, N4 et N4D).

    Limites :

    • Le type de machine n1-standard-1 n'est pas compatible avec les images 2.0 et versions ultérieures (il n'est pas recommandé pour les images antérieures à la version 2.0. Utilisez plutôt un type de machine avec une mémoire plus importante).
    • Les types de machines à cœur partagé ne sont pas compatibles, ce qui inclut les types de machines non compatibles suivants :
      • Types de machines à cœur partagé E2 : e2-micro, e2-small et e2-medium
      • Types de machines à cœur partagé N1 : f1-micro et g1-small
    • Managed Service pour Apache Spark sélectionne hyperdisk-balanced comme type de disque de démarrage si le type de machine est C4, N4 ou N4D.
  • Types de machines optimisés pour le calcul, y compris les types de machines C2 et C2D.
  • Types de machines à mémoire optimisée, y compris les types de machines M1 et M2.
  • Types de machines Arm, y compris les types de machines C4A.

Types de machines personnalisés

Managed Service pour Apache Spark est compatible avec les types de machines personnalisés des séries N1, N2, N2D, E2, N4 et N4D.

Les types de machines personnalisés conviennent parfaitement aux charges de travail suivantes :

  • Les charges de travail qui ne conviennent pas aux types de machines prédéfinis
  • Charges de travail qui nécessitent davantage de puissance de traitement ou de mémoire, sans pour autant nécessiter toutes les mises à niveau fournies par le type de machine de niveau supérieur

Par exemple, supposons que votre charge de travail nécessite plus de puissance de traitement que celle fournie par une instance n1-standard-4, mais que l'instance de niveau immédiatement supérieur, n1-standard-8, fournisse une capacité trop importante. Avec les types de machines personnalisés, vous pouvez créer des clusters Managed Service pour Apache Spark avec des nœuds maîtres et/ou des nœuds de calcul entre ces deux niveaux, avec 6 processeurs virtuels et 25 Go de mémoire.

Spécifier un type de machine personnalisé

Les types de machines personnalisés utilisent une spécification spéciale machine type et sont soumis à des limites. Par exemple, vous trouverez ci-dessous la spécification de type de machine personnalisé pour une VM personnalisée avec six processeurs virtuels et 22,5 Go de mémoire : custom-6-23040.

Dans la spécification de type de machine, les nombres correspondent au nombre de processeurs virtuels dans la machine (6) et à la quantité de mémoire (23040). Celle-ci est calculée. en multipliant la quantité de mémoire en gigaoctets par 1024. (Pour plus d'informations, consultez la section Exprimer la mémoire en Go ou Mo.) Dans cet exemple, 22,5 (Go) est multiplié par 1 024 : 22.5 * 1024 = 23040.

Vous spécifiez le type de machine personnalisé lorsque vous créez un cluster. Lorsque vous créez un cluster, vous pouvez définir le type de machine pour le nœud maître et/ou pour les nœuds de calcul. Le nœud maître peut utiliser un type de machine personnalisé différent de celui utilisé par les nœuds de calcul. Le type de machine utilisé par tous les nœuds de calcul secondaires est identique à celui des nœuds de calcul primaires et ne peut pas être défini séparément. (Pour plus d'informations, consultez la page Nœuds de calcul secondaires : VM préemptives et non préemptives).

Tarification des types de machines personnalisés

La tarification des types de machines personnalisés est basée sur les ressources utilisées dans la machine personnalisée. Les tarifs de Managed Service pour Apache Spark sont ajoutés au coût des ressources de calcul et sont basés sur le nombre total de processeurs virtuels utilisés dans le cluster.

Créer un cluster avec un type de machine spécifié

Google Cloud Console

  • Ouvrez la page Créer un cluster.
  • Dans la configuration des nœuds de calcul, sélectionnez la famille de machines, la série, et le type.
  • Par défaut, les paramètres du nœud pilote(maître) sont identiques à ceux des nœuds de calcul principaux. Sous Configuration supplémentaire, vous pouvez modifier le nœud pilote pour décocher la case Définir par défaut le nœud pilote sur la même configuration que le nœud de calcul principal, puis spécifier les paramètres du nœud pilote.
  • Commande gcloud CLI

    Exécutez la gcloud dataproc clusters create commande avec les options suivantes pour créer un cluster Managed Service pour Apache Spark en spécifiant les types de machines du nœud maître et/ou des nœuds de calcul :

    • L'option --master-machine-type machine-type vous permet de définir le type de machine prédéfini ou personnalisé utilisé par l'instance de VM maître dans votre cluster (ou les instances maîtres si vous créez un cluster à haute disponibilité)
    • L'option --worker-machine-type custom-machine-type vous permet de définir le type de machine prédéfini ou personnalisé utilisé par les instances de VM de calcul dans votre cluster.

    Exemple :

    gcloud dataproc clusters create test-cluster /
        --master-machine-type custom-6-23040 /
        --worker-machine-type custom-6-23040 /
        other args
    
    Une fois le cluster Managed Service pour Apache Spark démarré, les informations sur le cluster s'affichent dans la fenêtre du terminal. Vous trouverez ci-dessous à titre d'exemple, une liste non exhaustive des propriétés du cluster affichée dans la fenêtre du terminal :
    ...
    properties:
      distcp:mapreduce.map.java.opts: -Xmx1638m
      distcp:mapreduce.map.memory.mb: '2048'
      distcp:mapreduce.reduce.java.opts: -Xmx4915m
      distcp:mapreduce.reduce.memory.mb: '6144'
      mapred:mapreduce.map.cpu.vcores: '1'
      mapred:mapreduce.map.java.opts: -Xmx1638m
    ...
    

    API

    Pour créer un cluster avec des types de machines personnalisés, définissez les machineTypeUri dans les masterConfig et/ou workerConfig InstanceGroupConfig dans la cluster.create requête API.

    Exemple :

    POST /v1/projects/my-project-id/regions/is-central1/clusters/
    {
      "projectId": "my-project-id",
      "clusterName": "test-cluster",
      "config": {
        "configBucket": "",
        "gceClusterConfig": {
          "subnetworkUri": "default",
          "zoneUri": "us-central1-a"
        },
        "masterConfig": {
          "numInstances": 1,
          "machineTypeUri": "n1-highmem-4",
          "diskConfig": {
            "bootDiskSizeGb": 500,
            "numLocalSsds": 0
          }
        },
        "workerConfig": {
          "numInstances": 2,
          "machineTypeUri": "n1-highmem-4",
          "diskConfig": {
            "bootDiskSizeGb": 500,
            "numLocalSsds": 0
          }
        }
      }
    }
    

    Créer un cluster avec un type de machine personnalisé et une extension de mémoire

    Managed Service pour Apache Spark accepte les types de machines personnalisés avec extension de mémoire au-delà de la limite de 6,5 Go par processeur virtuel (Pour plus d'informations, consultez les tarifs des extensions de mémoire).

    Google Cloud Console

  • Ouvrez la page Créer un cluster Managed Service pour Apache Spark.
  • Dans la configuration des nœuds de calcul, sélectionnez la famille de machines, la série, et le type.
  • Par défaut, les paramètres du nœud pilote (maître) sont identiques à ceux des nœuds de calcul principaux. Sous Configuration supplémentaire, vous pouvez modifier le nœud pilote pour décocher la case Définir par défaut le nœud pilote sur la même configuration que le nœud de calcul principal, puis spécifier les paramètres du nœud pilote.
  • gcloud CLI

    Pour créer un cluster à partir de la ligne de commande gcloud, qui comporte des processeurs personnalisés avec une extension de mémoire, ajoutez un -ext suffixe aux ‑‑master-machine-type et/ou ‑‑worker-machine-type options.

    Exemple

    L'exemple de ligne de commande gcloud suivant crée un cluster Managed Service pour Apache Spark avec un processeur et 50 Go de mémoire (50 * 1 024 = 51 200) pour chaque nœud :

    gcloud dataproc clusters create test-cluster /
        --master-machine-type custom-1-51200-ext /
        --worker-machine-type custom-1-51200-ext /
        other args
    

    API

    clusters.create

    ...
        "masterConfig": {
          "numInstances": 1,
          "machineTypeUri": "custom-1-51200-ext",
        ...
        },
        "workerConfig": {
          "numInstances": 2,
          "machineTypeUri": "custom-1-51200-ext",
         ...
    ...
    

    Types de machines Arm

    Managed Service pour Apache Spark est compatible avec la création de clusters avec des nœuds qui utilisent des types de machines Arm, tels que le type de machine C4A.

    Exigences et limites :

    • L'image Managed Service pour Apache Spark doit être compatible avec le chipset Arm. Les images Managed Service pour Apache Spark 2.1-ubuntu20-arm, 2.2-ubuntu22-arm, et 2.3-ubuntu22-arm (et les suffixes -arm ultérieurs) sont compatibles avec le chipset Arm. Les images compatibles avec Arm ne sont pas compatibles avec de nombreux composants facultatifs et d'actions d'initialisation , comme indiqué sur les pages de version d'image.
    • Étant donné qu'une seule image doit être spécifiée pour un cluster, les nœuds maîtres, de calcul et de calcul secondaires doivent utiliser un type de machine Arm compatible avec l'image Arm Managed Service pour Apache Spark sélectionnée.
    • Les fonctionnalités Managed Service pour Apache Spark qui ne sont pas compatibles avec les types de machines Arm ne sont pas disponibles (par exemple, les disques SSD locaux ne sont pas compatibles avec les types de machines C4A).
    • Les images Arm ne sont compatibles qu'avec les composants préinstallés et un ensemble limité de composants facultatifs. Les autres composants facultatifs et toutes les actions d'initialisation ne sont pas compatibles.

    Créer un cluster avec un type de machine Arm

    Console

    Pour créer un cluster Managed Service pour Apache Spark qui utilise un type de machine Arm, procédez comme suit :

    1. Ouvrez la page Créer un cluster Managed Service pour Apache Spark.
    2. Dans la configuration des nœuds de calcul, sélectionnez la famille de machines, la série, et le type.
    3. Par défaut, les paramètres du nœud pilote (maître) sont identiques à ceux des nœuds de calcul principaux. Sous Configuration supplémentaire, vous pouvez modifier le nœud pilote pour décocher la case Définir par défaut le nœud pilote sur la même configuration que le nœud de calcul principal, puis spécifier les paramètres du nœud pilote.

    gcloud

    Pour créer un cluster Managed Service pour Apache Spark qui utilise un type de machine Arm, exécutez la commande gcloud suivante en local dans une fenêtre de terminal ou dans Cloud Shell. Cet exemple spécifie l'image 2.1-ubuntu20-arm et le type de machine Arm c4a-standard-4.

    gcloud dataproc clusters create cluster-name \
        --region=REGION \
        --image-version=2.1-ubuntu20-arm \
        --master-machine-type=c4a-standard-4 \
        --worker-machine-type=c4a-standard-4
    

    Remarques :

    API

    clusters.create

    POST /v1/projects/my-project-id/regions/is-central1/clusters/
    {
      "projectId": "my-project-id",
      "clusterName": "sample-cluster",
      "config": {
        "configBucket": "",
        "gceClusterConfig": {
          "subnetworkUri": "default",
          "zoneUri": "us-central1-a"
        },
        "masterConfig": {
          "numInstances": 1,
          **"machineTypeUri": "c4a-standard-4"**,
          "diskConfig": {
            "bootDiskSizeGb": 500,
          }
        },
        "workerConfig": {
          "numInstances": 2,
          **"machineTypeUri": "c4a-standard-4"**,
          "diskConfig": {
            "bootDiskSizeGb": 500,
            "numLocalSsds": 0
          }
        },
        "softwareConfig": {
          "imageVersion": "2.1-ubuntu20-arm"
        }
      }
    }
    

    Étape suivante