自訂機器類型

Google Cloud Dataproc 叢集以 Google Compute Engine 執行個體為建構基礎。機器類型定義執行個體可用的虛擬化硬體資源。Compute Engine 提供預先定義的機器類型自訂機器類型。Cloud Dataproc 叢集可以在主要節點及/或工作站節點中使用標準和自訂類型。

自訂機器類型的用途

自訂機器類型說明文件所述,自訂機器類型非常適合用來處理下列工作負擔:

  • 不適合預先定義機器類型的工作負擔。
  • 工作負載需要更多處理效能或記憶體,但不需要新一代機器類型提供的所有升級功能。

範例

例如,假設您的工作負擔需要的處理效能比 n1-standard-4 執行個體所能提供的更多,但新一代 n1-standard-8 執行個體提供的效能又太多。透過自訂機器類型,您可以使用中間範圍 (使用 6 個虛擬 CPU 和 25 GB 的記憶體) 的主要節點及/或工作站節點建立 Cloud Dataproc 叢集。

定價

自訂機器類型定價會隨著自訂機器使用的資源而有所不同。Dataproc 定價會加入您使用的運算資源費用,並以叢集中使用的虛擬 CPU 總數為基礎。

使用自訂機器類型搭配 Cloud Dataproc

目前,只有 Google Cloud SDK gcloud dataproc 指令支援使用自訂機器類型建立叢集的功能。

先瞭解自訂機器類型

使用自訂機器類型建立叢集之前,請查看使用自訂機器類型建立 VM 執行個體一文以瞭解重要注意事項,包括自訂類型規格與定價。

自訂機器類型使用特殊的 machine type 規格。例如,自訂 VM 使用 6 個虛擬 CPU 和 22.5 GB 記憶體的自訂機器類型規格為:

custom-6-23040

機器類型的數量會對應到機器中的虛擬 CPU 數量 (在此案例中為 6) 及記憶體數量 (在此案例中為 23040)。記憶體數量的計算方式為以 GB 為單位的記憶體數量乘以 1024。在此例中,為 22.5 (GB) 乘以 1024:

22.5 * 1024 = 23040

遵循 CPU 及記憶體組合的限制,您可以使用上述語法指定叢集要使用的自訂機器類型。您可以在建立叢集時,設定主要節點及/或工作站節點的機器類型。如果兩者都設定,則主要節點使用的自訂機器類型可以和工作站使用的自訂機器類型不同。先佔 (次要) 工作站的機器類型設定遵循主要工作站的設定,不能個別設定 (請參閱先佔如何搭配 Cloud Dataproc 使用一節)。

使用自訂機器類型建立 Cloud Dataproc 叢集

gcloud 指令

執行 gcloud dataproc clusters create 指令並搭配下列標記,以使用主要執行個體和/或工作站自訂機器類型建立 Cloud Dataproc 叢集:
  • --master-machine-type custom-machine-type 標記可讓您設定叢集中主要 VM 執行個體使用的自訂機器類型 (如果您是建立 HA 叢集,則是主要執行個體使用的自訂機器類型)
  • --worker-machine-type custom-machine-type 標記可讓您設定叢集中工作站 VM 執行個體使用的自訂機器類型

範例

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-6-23040 /
    --worker-machine-type custom-6-23040 /
    other args
Cloud Dataproc 叢集啟動後,就會在終端機視窗中顯示叢集詳細資料。以下是顯示在終端機視窗中的部分叢集屬性清單範例:
...
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
...

REST API

如要使用自訂機器類型建立叢集,請在 cluster.create API 請求的 masterConfig 和/或 workerConfig InstanceGroupConfig 中設定 machineTypeUri

範例
POST /v1/projects/my-project-id/regions/global/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
      }
    }
  }
}

主控台

當您在「Create a cluster」(建立叢集) 頁面中建立 Cloud Dataproc 叢集時,請在「Master node」(主要節點) 和/或「Worker nodes」(工作站節點) 面板的「Machine type」(機器類型) 部分中,按一下 [Customize] (自訂),然後填入核心數和記憶體數量。主控台標籤和說明文字可協助您選取有效的自訂機器類型值。

下列螢幕擷取畫面顯示建立叢集使用的主要節點和工作站節點值,每個節點各使用 6 個虛擬 CPU 和 22.5 GB 記憶體。
請按一下 [Extend memory] (擴充記憶體),提供主要執行個體節點和/或工作站節點的擴充記憶體值。

CPU 擴充記憶體

Cloud Dataproc 支援擴充記憶體超過每個 vCPU 6.5 GB 記憶體限制的自訂機器類型 (請參閱擴充記憶體定價)。

使用擴充記憶體

gcloud 指令

如要在 gcloud 指令列建立使用自訂 CPU 與擴充記憶體的叢集,請在 ‑‑master-machine-type 及/或 ‑‑worker-machine-type 標記中加入 -ext 後置字串。

範例

下列 gcloud 指令列範例會建立每個節點使用 1 個 CPU 和 50 GB 記憶體 (50 * 1024 = 51200) 的 Cloud Dataproc 叢集:

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-1-51200-ext /
    --worker-machine-type custom-1-51200-ext /
    other args

REST API

下列擷取自 Cloud Dataproc REST API clusters.create 要求的 JSON 程式碼片段範例,指定每個節點使用 1 個 CPU 及 50 GB 記憶體 (50 * 1024 = 51200)。

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

主控台

在 GCP 主控台中 Cloud Dataproc「Create a cluster」(建立叢集) 頁面的「Master node」(主要執行個體點) 和/或「Worker nodes」(工作站節點) 部分中自訂機器類型記憶體時,請按一下 [Extend memory] (擴充記憶體)。

瞭解詳情

請參閱使用自訂機器類型建立 VM 執行個體

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Dataproc 說明文件
需要協助嗎?請前往我們的支援網頁