Pour atténuer les effets de l'indisponibilité des VM spécifiées par l'utilisateur dans des régions spécifiques à des heures spécifiques (rupture de stock), Dataproc vous permet de demander la création d'un partial cluster
en spécifiant un nombre minimal d'ouvriers principaux acceptable pour permettre la création de clusters.
Cluster standard | Cluster partiel |
---|---|
Si un ou plusieurs nœuds de calcul principaux ne peuvent pas être créés et initialisés, la création du cluster échoue. Les workers créés continuent de s'exécuter et sont facturés jusqu'à ce qu'ils soient supprimés par l'utilisateur. | Si le nombre minimal de nœuds de calcul spécifié peut être créé, le cluster est créé. Les workers ayant échoué (non initialisés) sont supprimés et ne sont pas facturés. Si le nombre minimal de nœuds de calcul spécifié ne peut pas être créé et initialisé, le cluster n'est pas créé. Les workers créés ne sont pas supprimés pour permettre le débogage. |
Le temps de création des clusters est optimisé. | Le temps de création du cluster peut être plus long, car tous les nœuds doivent signaler l'état du provisionnement. |
Vous pouvez créer des clusters à nœud unique. | Vous ne pouvez pas créer de clusters à nœud unique. |
Autoscaling :
Utilisez l'autoscaling avec la création partielle d'un cluster pour vous assurer que le nombre cible (complet) de nœuds de calcul principaux est créé. L'autoscaling tentera d'acquérir des nœuds de calcul ayant échoué en arrière-plan si la charge de travail en a besoin.
Vous trouverez ci-dessous un exemple de règle d'autoscaling qui réessaie jusqu'à ce que le nombre total d'instances de nœuds de calcul principaux atteigne une taille cible de 10.
Les valeurs minInstances
et maxInstances
de la règle correspondent au nombre minimal et total de nœuds de calcul principaux spécifiés au moment de la création du cluster (voir Créer un cluster partiel).
Définir scaleDownFactor
sur 0 empêche le cluster de passer de 10 à 8 et permet de maintenir le nombre de nœuds de calcul à 10.
workerConfig:
minInstances: 8
maxInstances: 10
basicAlgorithm:
cooldownPeriod: 2m
yarnConfig:
scaleUpFactor: 1
scaleDownFactor: 0
gracefulDecommissionTimeout: 1h
Créer un cluster partiel
Vous pouvez utiliser la Google Cloud CLI ou l'API Dataproc pour créer un cluster partiel Dataproc.
gcloud
Pour créer un cluster partiel Dataproc sur la ligne de commande, exécutez la commande gcloud dataproc clusters create
suivante en local dans une fenêtre de terminal ou dans Cloud Shell.
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT \ --region=REGION \ --num-workers=NUM_WORKERS \ --min-num-workers=MIN_NUM_WORKERS \ other args ...
- CLUSTER_NAME: le nom du cluster doit commencer par une lettre minuscule suivie de 1 à 51 caractères (lettres minuscules, chiffres et traits d'union), et ne peut pas se terminer par un trait d'union.
- PROJECT: spécifiez le projet associé au cluster de tâches.
- REGION: spécifiez la région Compute Engine dans laquelle se trouvera le cluster de tâches.
- NUM_WORKERS: nombre total de nœuds de calcul principaux du cluster à créer, le cas échéant.
- MIN_NUM_WORKERS: nombre minimal de nœuds de calcul principaux à créer si le nombre total de nœuds de calcul (
NUM_WORKERS
) spécifié ne peut pas être créé. La création du cluster échoue si ce nombre minimal de nœuds de calcul principaux ne peut pas être créé (les nœuds de calcul créés ne sont pas supprimés pour permettre le débogage). Si cet indicateur est omis, la création de clusters standards avec le nombre total de nœuds de calcul principaux (NUM_WORKERS
) est tentée.
REST
Pour créer un cluster Dataproc partiel, spécifiez le nombre minimal de nœuds de calcul principaux dans le champ workerConfig.minNumInstances
dans le cadre d'une requête clusters.create.
Afficher le nombre de nœuds de calcul provisionnés
Une fois un cluster créé, vous pouvez exécuter la commande gcloud CLI suivante pour lister le nombre de nœuds de calcul, y compris les nœuds de calcul secondaires, provisionnés dans votre cluster.
gcloud dataproc clusters list \ --project=PROJECT \ --region=REGION \ --filter=clusterName=CLUSTER_NAME