【问题标题】:Idle delete configuration for PySpark Cluster on GCPGCP 上 PySpark 集群的空闲删除配置
【发布时间】:2019-10-17 21:32:50
【问题描述】:

我正在尝试定义创建集群函数以在 Cloud Dataproc 上创建集群。在浏览参考资料时,我遇到了一个空闲删除参数 (idleDeleteTtl),如果在定义的时间内不使用集群,它将自动删除集群。当我尝试将它包含在集群配置中时,它给了我一个 ValueError:Protocol message ClusterConfig has no "lifecycleConfig" field.

创建集群功能供参考:

def create_cluster(dataproc, project, zone, region, cluster_name, pip_packages):
    """Create the cluster."""
    print('Creating cluster...')
    zone_uri = \
        'https://www.googleapis.com/compute/v1/projects/{}/zones/{}'.format(
            project, zone)
    cluster_data = {
        'project_id': project,
        'cluster_name': cluster_name,
        'config': {
            'initialization_actions': [{
                'executable_file': 'gs://<some_path>/python/pip-install.sh'
            }],
            'gce_cluster_config': {
                'zone_uri': zone_uri,
                'metadata': {
                        'PIP_PACKAGES': pip_packages
                    }
            },
            'master_config': {
                'num_instances': 1,
                'machine_type_uri': 'n1-standard-1'
            },
            'worker_config': {
                'num_instances': 2,
                'machine_type_uri': 'n1-standard-1'
            },
              'lifecycleConfig': { #### PROBLEM AREA ####
                'idleDeleteTtl': '30m'
            }
        }
    }

    cluster = dataproc.create_cluster(project, region, cluster_data)
    cluster.add_done_callback(callback)
    global waiting_callback
    waiting_callback = True

如果不在同一个功能本身中,我想要类似的功能。我已经定义了手动删除功能,但我想添加功能以在不使用时自动删除集群。

【问题讨论】:

  • 由于它仍然是一个测试版功能,我认为您的端点可能需要是 v1beta2 而不是普通的 v1
  • 确保您是从 v1beta2 包而不是 v1 包导入 Dataproc 客户端 (cloud.google.com/dataproc/docs/reference/rpc/…) 将区域 URI 保留为 v1 应该可以,因为 beta Dataproc 可以使用 v1 计算。

标签: google-cloud-platform pyspark google-cloud-dataproc


【解决方案1】:

您正在调用v1 API,并传递一个属于v1beta2 API 的参数。

从以下位置更改您的端点:

https://www.googleapis.com/compute/v1/projects/{}/zones/{}

到这里:

https://www.googleapis.com/compute/v1beta2/projects/{}/zones/{}

【讨论】:

  • 发布一个包含新细节的新问题。
  • 我明白了,感谢您的帮助。我不确定您是否要将区域 uri 更改为您提到的那个。但我不需要更改区域 uri。只需要使用 dataproc_v1beta2 模块。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 2022-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-28
  • 2017-11-01
相关资源
最近更新 更多