Update a cluster
Stay organized with collections
Save and categorize content based on your preferences.
This sample walks a user through updating a Cloud Dataproc cluster using the Python client library.
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[[["\u003cp\u003eThis sample demonstrates how to update a Cloud Dataproc cluster using the Python client library.\u003c/p\u003e\n"],["\u003cp\u003eThe process involves creating a client with the specified cluster region, retrieving the cluster to update, and then updating the desired parameters such as the number of instances.\u003c/p\u003e\n"],["\u003cp\u003eThe sample utilizes the \u003ccode\u003edataproc.ClusterControllerClient\u003c/code\u003e to manage cluster operations and the \u003ccode\u003eupdate_cluster\u003c/code\u003e function to apply changes.\u003c/p\u003e\n"],["\u003cp\u003eAuthentication to Dataproc is required, utilizing Application Default Credentials.\u003c/p\u003e\n"],["\u003cp\u003eYou can find more samples for other Google Cloud products using the Google Cloud sample browser.\u003c/p\u003e\n"]]],[],null,["This sample walks a user through updating a Cloud Dataproc cluster using the Python client library.\n\nCode sample \n\nPython\n\n\nBefore trying this sample, follow the Python setup instructions in the\n[Dataproc quickstart using\nclient libraries](/dataproc/docs/quickstarts/quickstart-lib).\n\n\nFor more information, see the\n[Dataproc Python API\nreference documentation](/python/docs/reference/dataproc/latest).\n\n\nTo authenticate to Dataproc, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n from google.cloud import dataproc_v1 as dataproc\n\n\n def update_cluster(project_id, region, cluster_name, new_num_instances):\n \"\"\"This sample walks a user through updating a Cloud Dataproc cluster\n using the Python client library.\n\n Args:\n project_id (str): Project to use for creating resources.\n region (str): Region where the resources should live.\n cluster_name (str): Name to use for creating a cluster.\n \"\"\"\n\n # Create a client with the endpoint set to the desired cluster region.\n client = dataproc.ClusterControllerClient(\n client_options={\"api_endpoint\": f\"{region}-dataproc.googleapis.com:443\"}\n )\n\n # Get cluster you wish to update.\n cluster = client.get_cluster(\n project_id=project_id, region=region, cluster_name=cluster_name\n )\n\n # Update number of clusters\n mask = {\"paths\": {\"config.worker_config.num_instances\": str(new_num_instances)}}\n\n # Update cluster config\n cluster.config.worker_config.num_instances = new_num_instances\n\n # Update cluster\n operation = client.update_cluster(\n project_id=project_id,\n region=region,\n cluster=cluster,\n cluster_name=cluster_name,\n update_mask=mask,\n )\n\n # Output a success message.\n updated_cluster = operation.result()\n print(f\"Cluster was updated successfully: {updated_cluster.cluster_name}\")\n\nWhat's next\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=dataproc)."]]