Amazon S3 on Outposts 搭配本機 Amazon EMR on Outposts - Amazon S3 on Outposts

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

Amazon S3 on Outposts 搭配本機 Amazon EMR on Outposts

Amazon EMR 是受管叢集平台,可簡化大數據架構的執行,例如 Apache Hadoop 以及 Apache Spark上, AWS 處理和分析大量資料。透過使用這些架構和相關的開放原始碼專案,您可以處理用於分析目的和商業智慧工作負載的資料。Amazon EMR也可協助您轉換大量資料,並將其移入和移出其他 AWS 資料存放區和資料庫,並支援 Amazon S3 on Outposts。如需 Amazon 的詳細資訊EMR,請參閱 Amazon 管理指南 中的 Amazon EMR on Outposts EMR

對於 Amazon S3 on Outposts,Amazon EMR開始支援 Apache Hadoop 7.0.0 版中的 S3A 連接器。Amazon 的早期版本EMR不支援本機 S3 on Outposts,且不支援EMR檔案系統 (EMRFS)。

支援的應用程式

Amazon EMR搭配 Amazon S3 on Outposts 支援下列應用程式:

  • Hadoop

  • Spark

  • Hue

  • Hive

  • Sqoop

  • Pig

  • Hudi

  • Flink

如需詳細資訊,請參閱 Amazon EMR版本指南

建立和設定 Amazon S3 on Outposts 儲存貯體

Amazon AWS SDK for Java 搭配 Amazon S3 on Outposts EMR使用 來儲存輸入資料和輸出資料。您的 Amazon EMR日誌檔案會儲存在您選擇的區域 Amazon S3 位置,不會儲存在 Outpost 上的本機。如需詳細資訊,請參閱 Amazon 管理指南 中的 Amazon EMR日誌 EMR

為了符合 Amazon S3 和DNS要求,S3 on Outposts 儲存貯體具有命名限制。如需詳細資訊,請參閱建立 S3 on Outposts 儲存貯體

對於 Amazon 7EMR.0.0 版及更新版本,您可以EMR搭配 S3 on Outposts 和 S3A 檔案系統使用 Amazon。

事前準備

S3 on Outposts 許可 – 當您建立 Amazon EMR執行個體設定檔時,您的角色必須包含 S3 on Outposts 的 AWS Identity and Access Management (IAM) 命名空間。S3 on Outposts 具有自己的命名空間 s3-outposts*。如需使用此命名空間的範例政策,請參閱 使用 S3 on Outposts 設定 IAM

S3A 連接器 – 若要設定EMR叢集從 Amazon S3 on Outposts 儲存貯體存取資料,您必須使用 Apache Hadoop S3A 連接器。若要使用連接器,請確定您的所有 S3 都URIs使用 s3a 配置。如果沒有,您可以設定用於EMR叢集的檔案系統實作,以便 S3 URIs使用 S3A 連接器。

若要將檔案系統實作設定為使用 S3A 連接器,您可以使用EMR叢集的 fs.file_scheme.implfs.AbstractFileSystem.file_scheme.impl組態屬性,其中 file_scheme對應URIs於您擁有的 S3 類型。若要使用下列範例,請取代 使用者輸入預留位置 使用您自己的資訊。例如,若要變更URIs使用 s3配置之 S3 的檔案系統實作,請指定下列叢集組態屬性:

[ { "Classification": "core-site", "Properties": { "fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem", "fs.AbstractFileSystem.s3.impl": "org.apache.hadoop.fs.s3a.S3A" } } ]

若要使用 S3A ,請將fs.file_scheme.impl組態屬性設定為 org.apache.hadoop.fs.s3a.S3AFileSystem,並將 fs.AbstractFileSystem.file_scheme.impl 屬性設定為 org.apache.hadoop.fs.s3a.S3A

例如,如果您正在存取路徑 s3a://bucket/...,請將 fs.s3a.impl 屬性設定為 org.apache.hadoop.fs.s3a.S3AFileSystem,並將 fs.AbstractFileSystem.s3a.impl 屬性設定為 org.apache.hadoop.fs.s3a.S3A

開始使用 Amazon EMR搭配 Amazon S3 on Outposts

下列主題說明如何開始使用 Amazon EMR搭配 Amazon S3 on Outposts。

建立許可政策

在建立使用 Amazon S3 on Outposts 的EMR叢集之前,您必須建立IAM政策以連接至叢集的 Amazon EC2執行個體設定檔。此政策必須具有存取 S3 on Outposts 存取點 Amazon Resource Name () 的許可ARN。如需為 S3 on Outposts 建立IAM政策的詳細資訊,請參閱 使用 S3 on Outposts 設定 IAM

下列範例政策示範如何授予必要的許可。建立政策後,請將政策連接至您用來建立EMR叢集的執行個體設定檔角色,如 建立和設定叢集 一節中所述。若要使用此範例,請取代 使用者輸入預留位置 使用您自己的資訊。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:s3-outposts:us-west-2:111122223333:outpost/op-01ac5d28a6a232904/accesspoint/access-point-name, "Action": [ "s3-outposts:*" ] } ] }

建立和設定叢集

若要建立使用 S3 on Outposts 執行 Spark 的叢集,請在 主控台中完成下列步驟。

若要建立執行 的叢集 Spark 搭配 S3 on Outposts
  1. 在 開啟 Amazon EMR主控台https://console.aws.amazon.com/elasticmapreduce/

  2. 在左側導覽窗格中選擇 Clusters (叢集)。

  3. 選擇建立叢集

  4. 針對 Amazon EMR版本 ,選擇 emr-7.0.0 或更高版本.

  5. 針對應用程式套件,選擇 Spark 互動式 。然後選擇您要包含在叢集中的任何其他支援的應用程式。

  6. 若要啟用 Amazon S3 on Outposts,請輸入您的組態設定。

    範例組態設定

    若要使用下列範例組態設定,請將 取代user input placeholders為您自己的資訊。

    [ { "Classification": "core-site", "Properties": { "fs.s3a.bucket.DOC-EXAMPLE-BUCKET.accesspoint.arn": "arn:aws:s3-outposts:us-west-2:111122223333:outpost/op-01ac5d28a6a232904/accesspoint/access-point-name" "fs.s3a.committer.name": "magic", "fs.s3a.select.enabled": "false" } }, { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64" } } ], "Properties": {} }, { "Classification": "spark-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64" } } ], "Properties": {} }, { "Classification": "spark-defaults", "Properties": { "spark.executorEnv.JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64", "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false" } } ]
  7. 網路區段中,選擇 AWS Outposts 機架上的虛擬私有雲端 (VPC) 和子網路。如需 Amazon EMR on Outposts 的詳細資訊,請參閱 Amazon EMR管理指南 中的 EMR 叢集 AWS Outposts

  8. EC2Amazon 的執行個體設定檔EMR區段中,選擇具有您先前連接之許可政策IAM的角色。

  9. 設定剩餘的叢集設定,然後選擇建立叢集

組態概觀

下表說明 S3A 組態,以及當您設定將 S3 on Outposts 與 Amazon 搭配使用的叢集時為其參數指定的值EMR。

參數 預設值 S3 on Outposts 的必要值 說明

fs.s3a.aws.credentials.provider

如果未指定,S3A 會使用 Outposts 儲存貯體名稱尋找區域儲存貯體中的 S3。

S3 on Outposts 儲存貯ARN體的存取點

Amazon S3 on Outposts 支援虛擬私有雲端 (VPC) 限定存取點,作為存取 Outposts 儲存貯體的唯一方法。

fs.s3a.committer.name

file

magic

Magic committer 是 S3 on Outposts 唯一支援的遞交者。

fs.s3a.select.enabled

TRUE

FALSE

Outposts 不支援 S3 Select。

JAVA_HOME

/usr/lib/jvm/java-8

/usr/lib/jvm/java-11-amazon-corretto.x86_64

S3A 上的 S3A on Outposts 需要 Java 第 11 版。

下表說明 Spark 組態,以及當您設定叢集搭配 Amazon 使用 S3 on Outposts 時為其參數指定的值EMR。

參數 預設值 S3 on Outposts 的必要值 說明

spark.sql.sources.fastS3PartitionDiscovery.enabled

TRUE

FALSE

S3 on Outposts 不支援快速分割區。

spark.executorEnv.JAVA_HOME

/usr/lib/jvm/java-8

/usr/lib/jvm/java-11-amazon-corretto.x86_64

S3A 上的 S3 on Outposts 需要 Java 第 11 版。

考量事項

當您將 Amazon EMR與 S3 on Outposts 儲存貯體整合時,請考慮下列事項:

  • Amazon 7.0.0 版及更新版本支援 Amazon S3 on Outposts。 EMR

  • S3A 連接器必須搭配 Amazon 使用 S3 on OutpostsEMR。只有 S3A 具有與 S3 on Outposts 儲存貯體互動所需的功能。如需 S3A 連接器設定資訊,請參閱先決條件

  • Amazon S3 on Outposts 僅支援使用 Amazon S3 受管金鑰 (SSE-S3) 搭配 Amazon 的伺服器端加密EMR。如需詳細資訊,請參閱S3 on Outposts 中的資料加密

  • Amazon S3 on Outposts 不支援使用 S3A 進行寫入 FileOutputCommitter。使用 S3A FileOutputCommitter on S3 on Outposts 儲存貯體寫入 會導致下列錯誤:InvalidStorageClass:您指定的儲存類別無效

  • Amazon Serverless 或 Amazon on Outposts 不支援 Amazon S3 EMR on OutpostsEKS。 EMR

  • Amazon EMR日誌會儲存在您選擇的區域 Amazon S3 位置,不會儲存在 S3 on Outposts 儲存貯體中本機。