Pour atténuer les effets de l'indisponibilité des VM spécifiées par l'utilisateur dans des régions spécifiques
à des moments précis
(ruptures de stock),
Managed Service pour Apache Spark vous permet de demander la création d'un partial cluster en spécifiant
un nombre minimal de nœuds de calcul principaux acceptable pour autoriser la création du cluster.
| Cluster standard | Cluster partiel |
|---|---|
| Si un ou plusieurs nœuds de calcul principaux ne peuvent pas être créés ni initialisés, la création du cluster échoue. Les nœuds de calcul créés continuent de s'exécuter et d'entraîner des frais jusqu'à ce que l'utilisateur les supprime. | Si le nombre minimal de nœuds de calcul spécifié peut être créé, le cluster est créé. Les nœuds de calcul ayant échoué (non initialisés) sont supprimés et n'entraînent pas de frais. Si le nombre minimal de nœuds de calcul spécifié ne peut pas être créé ni initialisé, le cluster n'est pas créé. Les nœuds de calcul créés ne sont pas supprimés pour permettre le débogage. |
| Le temps de création du cluster est optimisé. | Le temps de création du cluster peut être plus long, car tous les nœuds doivent signaler l'état du provisionnement status. |
| Les clusters à nœud unique peuvent être créés. | Les clusters à nœud unique ne peuvent pas être créés. |
Autoscaling
Utilisez l'autoscaling avec la création de clusters partiels pour vous assurer que le nombre cible (complet) de nœuds de calcul principaux est créé. L'autoscaling tente d'acquérir les nœuds de calcul ayant échoué en arrière-plan si la charge de travail l'exige.
Voici un exemple de règle d'autoscaling qui effectue des tentatives 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 lors 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 à la limite maximale de 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 Managed Service pour Apache Spark.
gcloud
Pour créer un cluster partiel Managed Service pour Apache Spark 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 ...
Remplacez les éléments suivants :
- CLUSTER_NAME : le nom du cluster doit commencer par une lettre minuscule suivie d'un maximum de 51 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 jobs.
- REGION : spécifiez la région Compute Engine dans laquelle se trouvera le cluster de jobs.
- NUM_WORKERS : nombre total de nœuds de calcul principaux à créer dans le cluster, 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 spécifié (
NUM_WORKERS) 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 cette option est omise, la création d'un cluster standard avec le nombre total de nœuds de calcul principaux (NUM_WORKERS) est tentée.
REST
Pour créer un cluster partiel Dataproc, spécifiez le nombre minimal de nœuds de calcul principaux dans le
workerConfig.minNumInstances
champ dans le cadre d'une clusters.create.
Afficher le nombre de nœuds de calcul provisionnés
Après avoir créé un cluster, vous pouvez exécuter la commande gcloud CLI suivante pour afficher 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