Types de machines compatibles

Les clusters Dataproc sont construits à partir d'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 Dataproc peuvent utiliser aussi bien des types prédéfinis que des types personnalisés, et ce, pour le nœud maître et/ou les nœuds de calcul.

Les clusters Dataproc sont compatibles avec les types de machines prédéfinis Compute Engine suivants (la disponibilité du type de machine varie selon les régions):

  • Types de machines à usage général, qui incluent les types de machines N1, N2, N2D et E2 (Dataproc est également compatible avec les types de machines personnalisés N1, N2, N2D et E2).

    Limites :

    • Le type de machine n1-standard-1 n'est pas compatible avec les images 2.0 et ultérieures (le type de machine n1-standard-1 n'est pas recommandé pour les images antérieures à la version 2.0. Utilisez plutôt un type de machine avec plus de mémoire).
    • Les types de machines à cœur partagé ne sont pas compatibles, y compris les types de machines suivants :
      • E2: types de machines e2-micro, e2-small et e2-medium à cœur partagé, et
      • N1: types de machines f1-micro et g1-small à cœur partagé
  • 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, qui incluent les types de machines T2A.

Machines personnalisées

Dataproc est compatible avec les types de machines personnalisés de la série N1.

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 Dataproc 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 machine type spéciale et sont soumis à des limites. Par exemple, la spécification du type de machine personnalisé pour une VM personnalisée avec six processeurs virtuels et 22,5 Go de mémoire est 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 pouvez utiliser la syntaxe ci-dessus pour spécifier le type de machine personnalisé de vos clusters. 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).

Tarifs 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 Dataproc 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 Dataproc avec un type de machine spécifié

Console

Dans le panneau Configurer les nœuds de la page Dataproc Créer un cluster dans la console Google Cloud, sélectionnez la famille, la série et le type de machines pour les nœuds maîtres et de calcul du cluster.

Commande gcloud

Exécutez la commande gcloud dataproc clusters create avec les indicateurs suivants pour créer un cluster Dataproc avec des types de machines maîtres et/ou de calcul:

  • L'option --master-machine-type machine-type 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 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 Dataproc 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 REST

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

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 Dataproc avec un type de machine personnalisé doté d'une extension de mémoire

Dataproc 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 tarif des extensions de mémoire).

Console

Cliquez sur Plus de mémoire lors de la personnalisation de la mémoire du type de machine dans la section "Nœud maître et/ou nœuds de calcul" du panneau Configurer les nœuds sur la page Dataproc Créer un cluster dans la console Google Cloud.

Commande gcloud

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 suffixe -ext aux options ‑‑master-machine-type et/ou ‑‑worker-machine-type.

Exemple

L'exemple de ligne de commande gcloud suivant crée un cluster Dataproc 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

L'exemple suivant : L'extrait de code JSON d'une requête clusters.create de l'API REST Dataproc spécifie 1 processeur et 50 Go de mémoire (50 * 1 024 = 51 200) dans chaque nœud:

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

Types de machines ARM

Dataproc permet de créer un cluster avec des nœuds qui utilisent des types de machines ARM, tels que le type de machine T2A.

Conditions requises et limites:

  • L'image Dataproc doit être compatible avec le chipset ARM (actuellement, seule l'image Dataproc 2.1-ubuntu20-arm est compatible avec ARM CHIPSET). Notez que cette image n'est pas compatible avec de nombreux composants facultatifs et d'action d'initialisation (consultez les versions 2.1.x).
  • Étant donné qu'une image doit être spécifiée pour un cluster, les nœuds maîtres, de calcul et de nœuds de calcul secondaires doivent utiliser un type de machine ARM compatible avec l'image ARM Dataproc sélectionnée.
  • Les fonctionnalités de Dataproc 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 T2A).

Créer un cluster Dataproc avec un type de machine ARM

Console

Actuellement, la console Google Cloud ne permet pas de créer un cluster de type de machine Dataproc ARM.

gcloud

Pour créer un cluster Dataproc qui utilise le type de machine ARM t2a-standard-4, exécutez la commande gcloud suivante localement dans une fenêtre de terminal ou dans Cloud Shell.

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

Remarques :

  • REGION: région dans laquelle se situe le cluster.

  • Les images ARM sont disponibles à partir de 2.1.18-ubuntu20-arm.

  • Consultez la documentation de référence sur gcloud dataproc clusters create pour en savoir plus sur les indicateurs de ligne de commande supplémentaires que vous pouvez utiliser pour personnaliser votre cluster.

  • *-arm images n'est compatible qu'avec les composants installés et les composants facultatifs suivants indiqués sur la page des versions 2.1.x (les composants facultatifs 2.1 restants et toutes les actions d'initialisation listées sur cette page ne sont pas acceptés):

API

L'exemple de requête clusters.create de l'API REST Dataproc suivant crée un cluster de type de machine ARM.

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": "t2a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "t2a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "softwareConfig": {
      "imageVersion": "2.1-ubuntu20-arm"
    }
  }
}

Pour en savoir plus