教學課程:Amazon EMR 入門 - Amazon EMR

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

教學課程:Amazon EMR 入門

逐步解說工作流程,以快速設定 Amazon EMR 叢集並執行 Spark 應用程式。

設定 Amazon EMR 叢集

使用 Amazon EMR,您可以在幾分鐘內設定叢集,透過大數據框架來處理和分析資料。本教學課程說明如何使用 Spark 啟動範例叢集,以及如何執行儲存在 Amazon S3 儲存貯體中的簡單 PySpark 指令碼。它涵蓋三個主要工作流程類別的基本 Amazon EMR 任務:規劃和設定、管理以及清理。

循序完成教學課程時可尋找更詳細主題的連結,以及 後續步驟 章節中其他步驟的想法。如果您有任何問題或陷入困境,請聯絡討論論壇上的 Amazon EMR 團隊。

Amazon EMR 的工作流程圖概述了三個主要工作流程類別:「規劃和設定」、「管理」和「清理」。
先決條件
成本
  • 您所建立的範例叢集,會在實際環境中執行。叢集會產生最低費用。若要避免其他費用,請務必完成本教學課程最後一個步驟中的清理任務。根據 Amazon EMR 定價,按每秒計算費用。費用亦因區域而異。如需詳細資訊,請參閱 Amazon EMR 定價

  • 儲存於 Amazon S3 的小型檔案可能會產生最低費用。如果您在 AWS 免費方案的使用限制內,可能會免除 Amazon S3 的部分或全部費用。如需詳細資訊,請參閱 Amazon S3 定價AWS 免費方案

步驟 1:設定資料資源並啟動 Amazon EMR 叢集

為 Amazon EMR 準備儲存體

使用 Amazon EMR 時,可以從各種檔案系統中進行選擇,以儲存輸入資料、輸出資料和日誌檔案。在此教學課程中,可以使用 EMRFS 將資料儲存在 S3 儲存貯體中。EMRFS 是 Hadoop 檔案系統的實作,可讓您在 Amazon S3 讀取和寫入一般檔案。如需詳細資訊,請參閱使用 Amazon EMR 的儲存和檔案系統

若要為此教學課程建立儲存貯體,請遵循《Amazon Simple Storage Service 使用者指南》如何建立 S3 儲存貯體?中的說明。在您計劃啟動 Amazon EMR 叢集的相同 AWS 區域中建立儲存貯體。例如,美國西部 (奧勒岡) us-west-2。

您搭配 Amazon EMR 使用的儲存貯體和資料夾具有下列限制:

  • 名稱可以包含小寫字母、數字、句點 (.) 與連字號 (-)。

  • 名稱不能以數字結尾。

  • 儲存貯體名稱在所有 AWS 帳戶中必須唯一。

  • 輸出資料夾必須為空。

為 Amazon EMR 準備具有輸入資料的應用程式

為 Amazon EMR 準備應用程式的最常見方法是將應用程式及其輸入資料上傳至 Amazon S3。然後,當您將工作提交到叢集時,可以為指令碼和資料指定 Amazon S3 位置。

在此步驟中,可以將範例 PySpark 指令碼上傳到 Amazon S3 儲存貯體。我們已經提供 PySpark 指令碼供您使用。指令碼會處理食品機構檢查資料,並在 S3 儲存貯體中傳回結果檔案。結果檔案會列出「紅色」違規行為最多的十大機構。

也可以將範例輸入資料上傳到 Amazon S3,以便 PySpark 指令碼進行處理。輸入資料是 2006 年至 2020 年華盛頓州金縣衛生部門檢查結果的修改版本。如需詳細資訊,請參閱金縣公開資料:食品機構檢查資料。以下是資料集的範例資料列。

name, inspection_result, inspection_closed_business, violation_type, violation_points 100 LB CLAM, Unsatisfactory, FALSE, BLUE, 5 100 PERCENT NUTRICION, Unsatisfactory, FALSE, BLUE, 5 7-ELEVEN #2361-39423A, Complete, FALSE, , 0
若要為 EMR 準備範例 PySpark 指令碼
  1. 將以下範例程式碼複製到您所選編輯器的新檔案中。

    import argparse from pyspark.sql import SparkSession def calculate_red_violations(data_source, output_uri): """ Processes sample food establishment inspection data and queries the data to find the top 10 establishments with the most Red violations from 2006 to 2020. :param data_source: The URI of your food establishment data CSV, such as 's3://amzn-s3-demo-bucket/food-establishment-data.csv'. :param output_uri: The URI where output is written, such as 's3://amzn-s3-demo-bucket/restaurant_violation_results'. """ with SparkSession.builder.appName("Calculate Red Health Violations").getOrCreate() as spark: # Load the restaurant violation CSV data if data_source is not None: restaurants_df = spark.read.option("header", "true").csv(data_source) # Create an in-memory DataFrame to query restaurants_df.createOrReplaceTempView("restaurant_violations") # Create a DataFrame of the top 10 restaurants with the most Red violations top_red_violation_restaurants = spark.sql("""SELECT name, count(*) AS total_red_violations FROM restaurant_violations WHERE violation_type = 'RED' GROUP BY name ORDER BY total_red_violations DESC LIMIT 10""") # Write the results to the specified output URI top_red_violation_restaurants.write.option("header", "true").mode("overwrite").csv(output_uri) if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument( '--data_source', help="The URI for you CSV restaurant data, like an S3 bucket location.") parser.add_argument( '--output_uri', help="The URI where output is saved, like an S3 bucket location.") args = parser.parse_args() calculate_red_violations(args.data_source, args.output_uri)
  2. 儲存檔案為 health_violations.py

  3. health_violations.py 上傳到您為本教學課程建立的 Amazon S3 儲存貯體。如需指示說明,請參閱《Amazon Simple Storage Service 入門指南》中的將物件上傳至儲存貯體

為 EMR 準備範例輸入資料
  1. 下載 zip 檔案,food_establishment_data.zip

  2. 解壓縮並在您的機器中將 food_establishment_data.zip 儲存為 food_establishment_data.csv

  3. 將 CSV 檔案上傳到您為本教學課程建立的 S3 儲存貯體。如需指示說明,請參閱《Amazon Simple Storage Service 入門指南》中的將物件上傳至儲存貯體

如需有關為 EMR 設定資料的詳細資訊,請參閱 準備輸入資料以使用 Amazon EMR 處理

啟動 Amazon EMR 叢集

準備儲存位置和應用程式後,您可以啟動範例 Amazon EMR 叢集。在此步驟中,可使用最新的 Amazon EMR 發行版本來啟動 Apache Spark 叢集。

Console
使用與主控台一起安裝的 Spark 啟動叢集
  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/emr:// 開啟 Amazon EMR 主控台。

  2. 在左側導覽窗格中的 EMR on EC2 下方,選擇叢集,然後選擇建立叢集

  3. 建立叢集頁面中,記下發行版本執行個體類型執行個體數目許可的預設值。這些欄位會自動填入適用於一般用途叢集的值。

  4. 叢集名稱欄位中,輸入唯一的叢集名稱以協助您識別叢集,例如我的第一個叢集。您的叢集名稱不能包含字元 <、>、$、| 或 ` (backtick)。

  5. 應用程式下,選擇 Spark 選項以在叢集上安裝 Spark。

    注意

    在啟動叢集之前,請在 Amazon EMR 叢集上選擇所需的應用程式。啟動後,無法在叢集中新增或移除應用程式。

  6. 叢集日誌下,選取「將叢集特定日誌發布至 Amazon S3」核取方塊。將 Amazon S3 位置值取代為您建立的 Amazon S3 儲存貯體,後面加上 /logs。例如:s3://amzn-s3-demo-bucket/logs。新增 /logs 可在儲存貯體中建立名為 'logs' 的新資料夾,Amazon EMR 可以在其中複製叢集的日誌檔案。

  7. 安全組態和許可下,選擇您的 EC2 金鑰對。在相同的區段中,選取 Amazon EMR 的服務角色下拉式功能表,然後選擇 EMR_DefaultRole。然後,選取執行個體設定檔的 IAM 角色下拉式功能表,然後選擇 EMR_EC2_DefaultRole

  8. 選擇建立叢集以啟動叢集並開啟叢集詳細資訊頁面。

  9. 尋找叢集名稱旁邊的叢集狀態。Amazon EMR 佈建叢集時,狀態會從開始變更為執行中等待中。您可能會需要選擇右側的重新整理圖示,或是重新整理您的瀏覽器,以查看狀態更新。

當叢集已啟動、正在執行以及準備好接受工作時,叢集狀態變更為等待中。如需關於閱讀叢集摘要的詳細資訊,請參閱檢視 Amazon EMR 叢集狀態和詳細資訊。如需有關叢集狀態的資訊,請參閱 了解叢集生命週期

CLI
使用已安裝 的 Spark 啟動叢集 AWS CLI
  1. 建立 IAM 預設角色,然後使用它們透過下列命令來建立叢集。

    aws emr create-default-roles

    如需有關 create-default-roles 的詳細資訊,請參閱 AWS CLI 命令參考

  2. 使用下列命令建立 Spark 叢集。使用 --name 選項輸入叢集的名稱,然後使用 --ec2-attributes 選項指定 EC2 金鑰對的名稱。

    aws emr create-cluster \ --name "<My First EMR Cluster>" \ --release-label <emr-5.36.2> \ --applications Name=Spark \ --ec2-attributes KeyName=<myEMRKeyPairName> \ --instance-type m5.xlarge \ --instance-count 3 \ --use-default-roles

    請注意,--instance-type--instance-count--use-default-roles 的其他必需值。已針對一般用途叢集選擇這些值。如需有關 create-cluster 的詳細資訊,請參閱 AWS CLI 命令參考

    注意

    為了便於閱讀,包含 Linux 續行符 (\)。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。

    您應該會看到類似以下的輸出。輸出會顯示新叢集的 ClusterIdClusterArn。請注意您的 ClusterId。使用 ClusterId 檢查叢集狀態並提交工作。

    { "ClusterId": "myClusterId", "ClusterArn": "myClusterArn" }
  3. 執行下列命令,檢查叢集狀態。

    aws emr describe-cluster --cluster-id <myClusterId>

    應該會看到類似以下的輸出,其中包含新叢集的 Status 物件。

    { "Cluster": { "Id": "myClusterId", "Name": "My First EMR Cluster", "Status": { "State": "STARTING", "StateChangeReason": { "Message": "Configuring cluster software" } } } }

    當 Amazon EMR 佈建叢集時,State 值會從 STARTING 變更為 RUNNINGWAITING

當叢集已啟動、正在執行以及準備好接受工作時,叢集狀態變更為 WAITING。如需有關叢集狀態的資訊,請參閱 了解叢集生命週期

步驟 2:將工作提交到您的 Amazon EMR 叢集

提交工作並檢視結果

啟動叢集之後,可以將工作提交至正在執行的叢集,以處理和分析資料。作為一個步驟,將工作提交至 Amazon EMR 叢集。步驟是由一個或多個動作組成的工作單元。例如,您可以提交一個步驟來計算值,或者傳輸和處理資料。您可以在建立叢集時提交步驟,或者提交至正在執行的叢集。在本教學課程的此部分中,會作為一個步驟將 health_violations.py 提交至正在執行的叢集。若要進一步了解步驟,請參閱 將工作提交至 Amazon EMR 叢集

Console
使用主控台提交 Spark 應用程式作為步驟
  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/emr:// 開啟 Amazon EMR 主控台。

  2. 在左側導覽窗格的 EMR on EC2 下,選擇叢集,然後選取您要在其中提交工作的叢集。叢集狀態必須為等待中

  3. 選擇步驟索引標簽,然後選擇新增步驟

  4. 根據下列的準則來設定步驟:

    • 針對類型,選擇 Spark 應用程式。應能看到部署模式應用程式位置Spark-submit 選項的其他欄位。

    • 針對名稱,輸入新名稱。如果叢集中有許多步驟,命名每個步驟可幫助您追蹤它們。

    • 針對部署模式,請保留預設值叢集模式。如需有關 Spark 部署模式的詳細資訊,請參閱 Apache Spark 文件中的叢集模式概觀

    • 對於應用程式位置,在 Amazon S3 中輸入health_violations.py指令碼的位置,例如 s3://amzn-s3-demo-bucket/health_violations.py

    • Spark-submit 選項欄位保留為空白。如需有關 spark-submit 選項的詳細資訊,請參閱透過 spark-submit 啟動應用程式

    • 引數欄位中,輸入下列引數和值:

      --data_source s3://amzn-s3-demo-bucket/food_establishment_data.csv --output_uri s3://amzn-s3-demo-bucket/myOutputFolder

      s3://amzn-s3-demo-bucket/food_establishment_data.csv 取代為您在 中準備的輸入資料的 S3 儲存貯體 URI。 為 Amazon EMR 準備具有輸入資料的應用程式

      amzn-s3-demo-bucket 取代為您為此教學課程建立的儲存貯體名稱,並將 myOutputFolder 取代為您的叢集輸出資料夾名稱。

    • 針對步驟失敗時執行的動作,接受預設選項繼續。如此一來,如果步驟失敗,叢集便會繼續執行。

  5. 選擇新增以提交步驟。該步驟會出現在主控台中,狀態為待定

  6. 監控步驟狀態。它應該從待定變更為執行中,最後變更為已完成。若要在主控台中重新整理狀態,請選擇篩選條件右側的重新整理圖示。該指令碼大約需要一分鐘來執行。狀態變更為已完成時,表示步驟已成功完成。

CLI
使用 提交 Spark 應用程式作為步驟 AWS CLI
  1. 請確定您擁有已在 啟動 Amazon EMR 叢集 中啟動的叢集 ClusterId。也可透過以下命令擷取叢集 ID。

    aws emr list-clusters --cluster-states WAITING
  2. 使用 add-steps 命令和 ClusterId,作為一個步驟來提交 health_violations.py

    • 透過取代 "My Spark Application" 來指定步驟的名稱。在Args陣列中,將 s3://amzn-s3-demo-bucket/health_violations.py 取代為health_violations.py應用程式的位置。

    • s3://amzn-s3-demo-bucket/food_establishment_data.csv 取代food_establishment_data.csv資料集的 S3 位置。

    • s3://amzn-s3-demo-bucket/MyOutputFolder 取代為您指定的儲存貯體的 S3 路徑,以及叢集輸出資料夾的名稱。

    • ActionOnFailure=CONTINUE 意味著如果步驟失敗,叢集可繼續執行。

    aws emr add-steps \ --cluster-id <myClusterId> \ --steps Type=Spark,Name="<My Spark Application>",ActionOnFailure=CONTINUE,Args=[<s3://amzn-s3-demo-bucket/health_violations.py>,--data_source,<s3://amzn-s3-demo-bucket/food_establishment_data.csv>,--output_uri,<s3://amzn-s3-demo-bucket/MyOutputFolder>]

    如需有關使用 CLI 提交步驟的詳細資訊,請參閱 AWS CLI 命令參考

    提交步驟之後,應該會看到如下所示的輸出,其中包含 StepIds 清單。由於您提交了一個步驟,因此在清單中只能看到一個 ID。複製步驟 ID。可以使用步驟 ID 來檢查步驟狀態。

    { "StepIds": [ "s-1XXXXXXXXXXA" ] }
  3. 使用 describe-step 命令來查詢步驟狀態。

    aws emr describe-step --cluster-id <myClusterId> --step-id <s-1XXXXXXXXXXA>

    應該會看到類似以下的輸出,其中包含有關步驟的資訊。

    { "Step": { "Id": "s-1XXXXXXXXXXA", "Name": "My Spark Application", "Config": { "Jar": "command-runner.jar", "Properties": {}, "Args": [ "spark-submit", "s3://amzn-s3-demo-bucket/health_violations.py", "--data_source", "s3://amzn-s3-demo-bucket/food_establishment_data.csv", "--output_uri", "s3://amzn-s3-demo-bucket/myOutputFolder" ] }, "ActionOnFailure": "CONTINUE", "Status": { "State": "COMPLETED" } } }

    當步驟執行時,步驟的 State 會從 PENDING 變更為 RUNNINGCOMPLETED。此步驟大約需要一分鐘才能執行,因此您可能需要檢查幾次狀態。

State 變更為 COMPLETED 時,您就知道步驟已成功。

如需有關步驟生命週期的詳細資訊,請參閱 執行步驟來處理資料

檢視結果

步驟成功執行後,可以在 Amazon S3 輸出資料夾中檢視其輸出結果。

若要檢視 health_violations.py 的結果
  1. 開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

  2. 選擇儲存貯體名稱,然後選擇在提交步驟時指定的輸出資料夾。例如,amzn-s3-demo-bucket,然後是 myOutputFolder

  3. 確認輸出資料夾中顯示下列項目:

    • 稱為 _SUCCESS 的小型物件。

    • 以字首 part- 開頭的 CSV 檔案,它包含結果。

  4. 選擇包含結果的物件,然後選擇下載,將結果儲存至本機檔案系統。

  5. 在您選擇的編輯器中開啟結果。輸出檔案會列出紅色違規行為最多的十大食品機構。輸出檔案也會顯示每個機構的紅色違規總數。

    以下是 health_violations.py 結果範例。

    name, total_red_violations SUBWAY, 322 T-MOBILE PARK, 315 WHOLE FOODS MARKET, 299 PCC COMMUNITY MARKETS, 251 TACO TIME, 240 MCDONALD'S, 177 THAI GINGER, 153 SAFEWAY INC #1508, 143 TAQUERIA EL RINCONSITO, 134 HIMITSU TERIYAKI, 128

如需有關 Amazon EMR 叢集輸出的詳細資訊,請參閱 設定 Amazon EMR 叢集輸出的位置

使用 Amazon EMR 時,您可能想要連接到執行中的叢集以讀取日誌檔案、對叢集進行偵錯或者使用諸如 Spark Shell 等 CLI 工具。Amazon EMR 可讓您使用 Secure Shell (SSH) 通訊協定連接到叢集。本章節說明如何設定 SSH、連接至叢集以及檢視 Spark 的日誌檔案。如需有關連接至叢集的詳細資訊,請參閱 對 Amazon EMR 叢集節點進行驗證

授權叢集的 SSH 連線

在連接到叢集之前,需要修改叢集安全群組以授權傳入 SSH 連線。Amazon EC2 安全群組就像是虛擬防火牆,可控管傳入和傳出叢集的流量。當您為本教學課程建立叢集時,Amazon EMR 會代表您建立下列安全群組:

ElasticMapReduce-master

與主節點關聯的預設 Amazon EMR 受管安全群組。在 Amazon EMR 叢集中,主節點是管理叢集的 Amazon EC2 執行個體。

ElasticMapReduce-slave

與核心節點和任務節點相關聯的預設安全群組。

Console
使用主控台允許主要安全群組受信任來源的 SSH 存取

若要編輯安全群組,您必須擁有許可,才能管理叢集所在 VPC 的安全群組。如需詳細資訊,請參閱《IAM 使用者指南》中的變更使用者許可和允許管理 EC2 安全群組的範例政策

  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/emr:// 開啟 Amazon EMR 主控台。

  2. 在左側導覽窗格的 EMR on EC2 下,選擇叢集,然後選擇您要更新的叢集。這會開啟叢集詳細資訊頁面。應該預先選取此頁面上的屬性索引標籤。

  3. 屬性索引標簽中的聯網下,選取 EC2 安全群組 (防火牆) 旁邊的箭頭以展開此區段。在主節點下,選取安全群組連結。完成以下步驟後,可以選擇返回此步驟,選擇核心節點和任務節點,然後重複下列步驟以允許 SSH 用戶端存取核心節點和任務節點。

  4. 這會開啟 EC2 主控台。選擇傳入規則索引標籤,然後選擇編輯傳入規則

  5. 使用下列設定,檢查允許公有存取的傳入規則。如果存在,請選擇刪除將其移除。

    • 類型

      SSH

    • 連接埠

      22

    • 來源

      自訂 0.0.0.0/0

    警告

    在 2020 年 12 月之前,ElasticMapReduce-master 安全群組已預先設定規則,允許來自所有來源的連接埠 22 上的傳入流量。建立此規則的目的是簡化主節點的初始 SSH 連接。強烈建議您移除此傳入規則,並限制信任來源的流量。

  6. 捲動至規則列表底部並選擇新增規則

  7. 針對 Type (類型),選擇 SSH (SSH)。選取 SSH 會自動為協定輸入 TCP,並為連接埠範圍輸入 22

  8. 對於來源,請選取我的 IP,自動將您的 IP 地址新增為來源位址。也可新增一系列自訂受信任用戶端 IP 地址,或為其他用戶端建立額外的規則。許多網路環境會動態分配 IP 地址,因此您將來可能需要更新受信任用戶端的 IP 地址。

  9. 選擇 Save (儲存)。

  10. 也可從清單中選擇核心節點和任務節點,並重複上述步驟,以允許 SSH 用戶端存取核心節點和任務節點。

使用 連線至您的叢集 AWS CLI

無論作業系統為何,都可以使用 AWS CLI來建立叢集的 SSH 連線。

使用 連線至您的叢集並檢視日誌檔案 AWS CLI
  1. 使用以下命令開啟叢集的 SSH 連線。將 <mykeypair.key> 取代為金鑰對檔案的完整路徑和檔案名稱。例如:C:\Users\<username>\.ssh\mykeypair.pem

    aws emr ssh --cluster-id <j-2AL4XXXXXX5T9> --key-pair-file <~/mykeypair.key>
  2. 瀏覽至 /mnt/var/log/spark 以存取叢集主節點上的 Spark 日誌。然後檢視該位置中的檔案。如需主節點上其他日誌檔案的清單,請參閱 檢視主節點上的日誌檔案

    cd /mnt/var/log/spark ls

EC2 上的 Amazon EMR 也是 Amazon SageMaker AI Unified Studio 支援的運算類型。如需如何在 Amazon SageMaker AI Unified Studio 中使用和管理 EC2 資源上的 EMR,請參閱在 EC2 上管理 Amazon EMR。

步驟 3:清理 Amazon EMR 資源

終止叢集

既然已將工作提交至叢集,並已檢視 PySpark 應用程式的結果,就可以終止叢集。終止叢集會停止叢集的所有相關聯 Amazon EMR 費用和 Amazon EC2 執行個體。

當您終止叢集時,Amazon EMR 會免費將有關叢集的中繼資料保留兩個月。封存的中繼資料可協助您為新作業複製叢集,或重新檢視叢集組態以供參考。中繼資料包含叢集寫入到 S3 的資料,或儲存在叢集 HDFS 中的資料。

注意

終止叢集後,Amazon EMR 主控台不允許您從清單檢視中刪除叢集。當 Amazon EMR 清除其中繼資料時,終止的叢集會從主控台中消失。

Console
使用主控台終止叢集
  1. 登入 AWS Management Console,並在 https://https://console.aws.amazon.com/emr 開啟 Amazon EMR 主控台。

  2. 選擇叢集,然後選擇您想要終止的叢集。

  3. 動作下拉式功能表中,選擇終止叢集

  4. 在對話方塊中,選擇終止。視叢集組態而定,終止可能需要 5 到 10 分鐘。如需有關如何終止 Amazon EMR 叢集的詳細資訊,請參閱 在啟動、執行或等待狀態中終止 Amazon EMR 叢集

CLI
使用 終止叢集 AWS CLI
  1. 使用下列命令啟動叢集終止程序。將 <myClusterId> 取代為範例叢集的 ID。命令不會傳回輸出。

    aws emr terminate-clusters --cluster-ids <myClusterId>
  2. 若要檢查叢集終止程序是否正在進行中,請使用下列命令檢查叢集狀態。

    aws emr describe-cluster --cluster-id <myClusterId>

    以下是採用 JSON 格式的範例輸出。叢集 Status 應從 TERMINATING 變更為 TERMINATED。終止可能需要 5 到 10 分鐘,具體取決於叢集組態。如需有關終止 Amazon EMR 叢集的詳細資訊,請參閱 在啟動、執行或等待狀態中終止 Amazon EMR 叢集

    { "Cluster": { "Id": "j-xxxxxxxxxxxxx", "Name": "My Cluster Name", "Status": { "State": "TERMINATED", "StateChangeReason": { "Code": "USER_REQUEST", "Message": "Terminated by user request" } } } }

刪除 S3 資源

為避免額外費用,應刪除 Amazon S3 儲存貯體。刪除儲存貯體會移除本教學課程的所有 Amazon S3 資源。您的儲存貯體應包含:

  • PySpark 指令碼

  • 輸入資料集

  • 輸出結果資料夾

  • 日誌檔案資料夾

如果將 PySpark 指令碼或輸出儲存在不同位置,則可能需要採取額外的步驟來刪除已儲存的檔案。

注意

在刪除儲存貯體之前,必須終止叢集。否則,可能不允許您清空儲存貯體。

若要刪除儲存貯體,請依照《Amazon Simple Storage Service 使用者指南》如何刪除 S3 儲存貯體?提供的說明進行操作。

後續步驟

您現在已從頭到尾啟動了您的第一個 Amazon EMR 叢集。您也已完成必要的 EMR 任務,例如準備和提交大數據應用程式、檢視結果以及終止叢集。

使用以下主題,進一步了解如何自訂 Amazon EMR 工作流程。

探索適用於 Amazon EMR 的大數據應用程式

Amazon EMR 版本指南中探索並比較可在叢集上安裝的大數據應用程式。《版本指南》詳細說明了每個 EMR 發行版本,並包含在 Amazon EMR 上使用 Spark 和 Hadoop 等框架的提示。

規劃叢集硬體、聯網和安全性

在本教學課程中,您建立了一個簡單的 EMR 叢集,而沒有設定進階選項。進階選項可讓您指定 Amazon EC2 執行個體類型、叢集聯網和叢集安全性。如需有關規劃和啟動符合您要求的叢集的詳細資訊,請參閱 規劃、設定和啟動 Amazon EMR 叢集Amazon EMR 中的安全

管理叢集

深入了解如何在 管理 Amazon EMR 叢集 中使用正在執行的叢集。若要管理叢集,可以連線至叢集,對步驟進行偵錯,以及追蹤叢集活動和運作狀態。也可以使用 EMR 受管擴展來調整叢集資源,以回應工作負載需求。

使用不同的介面

除了 Amazon EMR 主控台之外,您可以使用 AWS Command Line Interface、Web 服務 API 或許多支援的 AWS SDKs 之一來管理 Amazon EMR。如需詳細資訊,請參閱管理介面

也可以透過多種方式與 Amazon EMR 叢集上安裝的應用程式互動。一些應用程式,例如 Apache Hadoop,會發布您可檢視的 Web 介面。如需詳細資訊,請參閱檢視 Amazon EMR 叢集上託管的 Web 介面

瀏覽 EMR 技術部落格

如需 Amazon EMR 新功能的範例逐步解說和深入的技術討論,請參閱 AWS 大數據部落格