

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

# 使用 HDFS 叢集設定 AWS DataSync 傳輸
<a name="create-hdfs-location"></a>

使用 AWS DataSync，您可以使用基本模式任務，在 Hadoop 分散式檔案系統 (HDFS) 叢集與下列其中一個 AWS 儲存服務之間傳輸資料：
+ [Amazon S3](create-s3-location.md)
+ [Amazon EFS](create-efs-location.md)
+ [Amazon FSx for Windows File Server](create-fsx-location.md)
+ [Amazon FSx for Lustre](create-lustre-location.md)
+ [Amazon FSx for OpenZFS](create-openzfs-location.md)
+ [Amazon FSx for NetApp ONTAP](create-ontap-location.md)

若要設定這種傳輸，您可以為 HDFS 叢集建立[位置](how-datasync-transfer-works.md#sync-locations)。您可以使用此位置做為傳輸來源或目的地。

## 提供對 HDFS 叢集的 DataSync 存取權
<a name="accessing-hdfs"></a>

若要連線至 HDFS 叢集，DataSync [會使用您盡可能接近 HDFS 叢集部署](deploy-agents.md)的基本模式代理程式。DataSync 代理程式充當 HDFS 用戶端，並與叢集中的 NameNodes 和 DataNodes 通訊。

當您啟動傳輸任務時，DataSync 會查詢 NameNode 在叢集上尋找檔案和資料夾的位置。如果您將 HDFS 位置設定為來源位置，DataSync 會從叢集中的 DataNodes 讀取檔案和資料夾資料，並將該資料複製到目的地。如果您將 HDFS 位置設定為目的地位置，則 DataSync 會將來源的檔案和資料夾寫入叢集中的 DataNodes。

### 身分驗證
<a name="accessing-hdfs-authentication"></a>

連線至 HDFS 叢集時，DataSync 支援簡易身分驗證或 Kerberos 身分驗證。若要使用簡單的身分驗證，請為使用者提供讀取和寫入 HDFS 叢集的權限。若要使用 Kerberos 身分驗證，請提供 Kerberos 組態檔案、Kerberos 金鑰資料表 (keytab) 檔案和 Kerberos 主體名稱。Kerberos 主體的登入資料必須位於提供的 keytab 檔案中。

### 加密
<a name="accessing-hdfs-encryption"></a>

使用 Kerberos 身分驗證時，DataSync 支援在 DataSync 代理程式和 HDFS 叢集之間傳輸時加密資料。使用 HDFS 叢集上的保護品質 (QOP) 組態設定，以及在建立 HDFS 位置時指定 QOP 設定，來加密您的資料。QOP 組態包含資料傳輸保護和遠端程序呼叫 (RPC) 保護的設定。

**DataSync 支援下列 Kerberos 加密類型：**
+ `des-cbc-crc`
+ `des-cbc-md4`
+ `des-cbc-md5`
+ `des3-cbc-sha1`
+ `arcfour-hmac`
+ `arcfour-hmac-exp`
+ `aes128-cts-hmac-sha1-96`
+ `aes256-cts-hmac-sha1-96`
+ `aes128-cts-hmac-sha256-128`
+ `aes256-cts-hmac-sha384-192`
+ `camellia128-cts-cmac`
+ `camellia256-cts-cmac`

您也可以使用透明資料加密 (TDE) 設定 HDFS 叢集進行靜態加密。使用簡易身分驗證時，DataSync 會讀取和寫入已啟用 TDE 的叢集。如果您使用 DataSync 將資料複製到啟用 TDE 的叢集，請先在 HDFS 叢集上設定加密區域。DataSync 不會建立加密區域。

## 不支援的 HDFS 功能
<a name="hdfs-unsupported-features"></a>

DataSync 目前不支援下列 HDFS 功能：
+ 使用 Kerberos 身分驗證時的透明資料加密 (TDE)
+ 設定多個 NameNodes
+ 透過 HTTP 的 Hadoop HDFS (HttpFS)
+ POSIX 存取控制清單 ACLs)
+ HDFS 延伸屬性 (xattrs)
+ 使用 Apache HBase 的 HDFS 叢集

## 建立您的 HDFS 傳輸位置
<a name="create-hdfs-location-how-to"></a>

您可以使用 位置做為 DataSync 傳輸的來源或目的地。

**開始之前**：執行下列動作來驗證代理程式和 Hadoop 叢集之間的網路連線：
+ 測試對 中所列 TCP 連接埠的存取[內部部署、自我管理和其他雲端儲存的網路需求](datasync-network.md#on-premises-network-requirements)。
+ 測試本機代理程式與 Hadoop 叢集之間的存取。如需說明，請參閱[驗證代理程式與儲存系統的連線](test-agent-connections.md#self-managed-storage-connectivity)。

### 使用 DataSync 主控台
<a name="create-hdfs-location-how-to-console"></a>

1. 在 https：//[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/) 開啟 AWS DataSync 主控台。

1. 在左側導覽窗格中，展開**資料傳輸**，然後選擇**位置**和**建立位置**。

1. 針對**位置類型**，選擇 **Hadoop 分散式檔案系統 (HDFS)**。

   您可以稍後將此位置設定為來源或目的地。

1. 針對 **代理**程式，選擇可連線至 HDFS 叢集的代理程式。

   您可以選擇多個代理程式。如需詳細資訊，請參閱[使用多個 DataSync 代理程式](do-i-need-datasync-agent.md#multiple-agents)。

1. 針對 **NameNode**，請提供 HDFS 叢集主要 NameNode 的網域名稱或 IP 地址。

1. 針對**資料夾**，輸入您希望 DataSync 用於資料傳輸的 HDFS 叢集資料夾。

   如果您的 HDFS 位置是來源，DataSync 會將此資料夾中的檔案複製到目的地。如果您的位置是目的地，DataSync 會將檔案寫入此資料夾。

1. 若要設定**區塊大小**或**複寫因素**，請選擇**其他設定**。

   預設區塊大小為 128 MiB。您提供的區塊大小必須是 512 位元組的倍數。

   傳輸到 HDFS 叢集時，預設複寫係數為三個 DataNodes。

1. 在**安全**區段中，選擇 HDFS 叢集上使用的**身分驗證類型**。
   + **簡單** – 對於**使用者**，在 HDFS 叢集上指定具有下列許可的使用者名稱 （取決於您的使用案例）：
     + 如果您打算使用此位置做為來源位置，請指定只有讀取許可的使用者。
     + 如果您打算使用此位置做為目的地位置，請指定具有讀取和寫入許可的使用者。

     或者，指定 HDFS 叢集金鑰管理伺服器 (KMS) 的 URI。
   + **Kerberos** – 指定可存取 HDFS 叢集的 Kerberos **委託人**。接著，提供 **KeyTab 檔案**，其中包含提供的 Kerberos 主體。然後，提供 **Kerberos 組態檔案**。最後，在 **RPC 保護**和**資料傳輸保護**下拉式清單中指定傳輸中保護的加密類型。

1. （選用） 選擇**新增標籤**以標記您的 HDFS 位置。

   *標籤*是索引鍵/值對，可協助您管理、篩選和搜尋位置。建議您為位置建立至少一個名稱標籤。

1. 選擇**建立位置**。

### 使用 AWS CLI
<a name="create-location-hdfs-cli"></a>

1. 複製下列`create-location-hdfs`命令。

   ```
   aws datasync create-location-hdfs --name-nodes [{"Hostname":"host1", "Port": 8020}] \
       --authentication-type "SIMPLE|KERBEROS" \
       --agent-arns [arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890example] \
       --subdirectory "/path/to/my/data"
   ```

1. 針對 `--name-nodes` 參數，指定 HDFS 叢集主要 NameNode 的主機名稱或 IP 地址，以及 NameNode 正在接聽的 TCP 連接埠。

1. 針對 `--authentication-type` 參數，指定連線至 Hadoop 叢集時要使用的身分驗證類型。您可指定為 `SIMPLE` 或 `KERBEROS`。

   如果您使用`SIMPLE`身分驗證，請使用 `--simple-user` 參數來指定使用者的使用者名稱。如果您使用`KERBEROS`身分驗證，請使用 `--kerberos-principal`、 `--kerberos-keytab`和 `--kerberos-krb5-conf` 參數。如需詳細資訊，請參閱 [create-location-hdfs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/create-location-hdfs.html)。

1. 針對 `--agent-arns` 參數，指定可連線至 HDFS 叢集之 DataSync 代理程式的 ARN。

   您可以選擇多個代理程式。如需詳細資訊，請參閱[使用多個 DataSync 代理程式](do-i-need-datasync-agent.md#multiple-agents)。

1. （選用） 對於 `--subdirectory` 參數，請在 HDFS 叢集上指定您希望 DataSync 用於資料傳輸的資料夾。

   如果您的 HDFS 位置是來源，DataSync 會將此資料夾中的檔案複製到目的地。如果您的位置是目的地，DataSync 會將檔案寫入此資料夾。

1. 執行 `create-location-hdfs` 命令。

   如果命令成功，您會收到回應，顯示您建立位置的 ARN。例如：

   ```
   {
       "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890example"
   }
   ```