

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon EMR 在 VPC 中啟動叢集
<a name="emr-vpc-launching-job-flows"></a>

當您擁有設定為託管 Amazon EMR 叢集的子網路後，透過指定在建立叢集時關聯子網路識別符來在該子網路中啟動叢集。

**注意**  
Amazon EMR 支援在發行版本 4.2 及更新版本中的私有子網路。

叢集啟動時，Amazon EMR 會根據叢集是在 VPC 私有或公有子網路中啟動來新增安全群組。所有安全群組允許在連接埠 8443 的輸入以與 Amazon EMR 服務通訊，但公有和私有子網路的 IP 地址範圍會有所不同。Amazon EMR 會管理所有這些安全群組，而且可能需要在一段時間內將額外的 IP 地址新增至 AWS 範圍。如需詳細資訊，請參閱[使用 Amazon EMR 叢集的安全群組控制網路流量](emr-security-groups.md)。

若要在 VPC 中管理叢集，Amazon EMR 會透過此裝置將網路裝置附接至主節點並進行管理。您可以使用 Amazon EC2 API 動作 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html) 來檢視此裝置。如果您以任何方式修改此裝置，叢集可能會失敗。

------
#### [ Console ]

**使用主控台在 VPC 中啟動叢集**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr) 開啟 Amazon EMR 主控台。

1. 在左側導覽窗格中的 **EC2 上的 EMR** 下，選擇**叢集**，然後選擇**建立叢集**。

1. 在**聯網**下，移至**虛擬私有雲端 (VPC)** 欄位。輸入 VPC 的名稱，或選擇**瀏覽**以選取您的 VPC。或者，選擇**建立 VPC** 以建立可用於叢集的 VPC。

1. 選擇適用於您的叢集的任何其他選項。

1. 若要啟動您的叢集，請選擇**建立叢集**。

------
#### [ AWS CLI ]

**使用 在 VPC 中啟動叢集 AWS CLI**
**注意**  
 AWS CLI 不提供自動建立 NAT 執行個體並將其連接到私有子網路的方法。不過，若要在子網路建立 S3 端點，您可以使用 Amazon VPC CLI 命令。使用此主控台以建立 NAT 執行個體並在私有子網路中啟動叢集。

在設定 VPC 後，您可以使用含 `--ec2-attributes` 參數的 `create-cluster` 子命令在其中啟動 Amazon EMR 叢集。使用 `--ec2-attributes` 參數來為叢集指定 VPC 子網路。
+ 若要在特定子網路中建立叢集，請鍵入下列命令，將 *myKey* 取代為您的 Amazon EC2 金鑰對名稱，並將 *77XXXX03* 取代為您的子網路 ID。

  ```
  aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --applications Name=Hadoop Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey,SubnetId=subnet-77XXXX03 --instance-type m5.xlarge --instance-count 3
  ```

  如果您在未使用 `--instance-groups` 參數的情況下指定執行個體計數，即會啟動單一主節點，且剩餘執行個體會以核心節點的形式啟動。所有節點都會使用命令中指定的執行個體類型。
**注意**  
如果您先前尚未建立預設 Amazon EMR 服務角色和 EC2 執行個體設定檔，請先鍵入 `aws emr create-default-roles` 來建立這些項目，然後再鍵入 `create-cluster` 子命令。

------

## 確保 EC2 上 EMR 叢集的可用 IP 地址
<a name="emr-vpc-launching-job-flows-ip-availability"></a>

為了確保啟動時可用 IP 地址足夠的子網路，EC2 子網路選擇會檢查 IP 可用性。其 建立程序會使用具有必要 IP 地址計數的子網路，視需要啟動核心節點、主要節點和任務節點，即使初始建立時，也只會建立叢集的核心節點。EMR 會檢查在建立期間啟動主要節點和任務節點所需的 IP 地址數量，以及分別計算啟動核心節點所需的 IP 地址數量。所需的主執行個體和任務執行個體或節點數量下限由 Amazon EMR 自動決定。

**重要**  
如果 VPC 中沒有子網路有足夠的可用 IPs 可容納基本節點，則會傳回錯誤，而且不會建立叢集。

在大多數部署案例中，核心節點、主要節點和任務節點的每次啟動之間都有時間差異。此外，多個叢集可以共用子網路。在這些情況下，IP 地址可用性可能會波動，而後續的任務節點啟動可能會受限於可用的 IP 地址。