提交串流步驟 - Amazon EMR

提交串流步驟

本章節涵蓋將串流步驟提交到叢集的基本知識。串流應用程式會從標準輸入讀取輸入,然後針對每個輸入執行指令碼或可執行檔 (稱為映射器)。每個輸入的結果通常會儲存在本機 (通常在 Hadoop 分散式檔案系統 (HDFS) 分割區)。在映射器處理完所有輸入後,第二個指令碼或可執行檔 (稱為縮減器) 會處理映射器結果。縮減器的結果會傳送到標準輸出。您可以將一系列串流步驟串在一起,其中一個步驟的輸出會成為另一個步驟的輸入。

可以參考映射器和縮減器做為檔案,或您可以提供 Java 類別。您可以任何支援的語言 (包括 Ruby、Perl、Python、PHP 或 Bash) 實作映射器和縮減器。

使用主控台提交串流步驟

此範例描述了如何使用 Amazon EMR 主控台來將串流步驟提交至執行中的叢集。

若要提交串流步驟
  1. 請在 https://console.aws.amazon.com/emr 開啟 Amazon EMR 主控台。

  2. Cluster List (叢集清單) 中,選擇您的叢集名稱。

  3. 向下捲動至 Steps (步驟) 區段並展開,接著選擇 Add step (新增步驟)

  4. Add Step (新增步驟) 對話方塊中:

    • 對於 Step type (步驟類型),選擇 Streaming program (串流程式)

    • 對於 Name (名稱),接受預設名稱 (串流程式) 或輸入新名稱。

    • 對於 Mapper (映射器),輸入或瀏覽到 Hadoop 中的映射器類別位置,或映射器可執行檔 (例如 Python 程式) 所在的 S3 儲存貯體。路徑值的格式必須為 BucketName/path/MapperExecutable

    • 對於Reducer (縮減器),輸入或瀏覽到 Hadoop 中的縮減器類別位置,或縮減器可執行檔 (例如 Python 程式) 所在的 S3 儲存貯體。路徑值的格式必須為 BucketName/path/MapperExecutable。Amazon EMR 支援特殊彙總關鍵字。如需更多資訊,請參閱 Hadoop 提供的彙總程式庫。

    • 對於 Input S3 location (輸入 S3 位置),輸入或瀏覽到輸入資料的位置。

    • 針對輸出 S3 位置,輸入或瀏覽至 Amazon S3 輸出儲存貯體的名稱。

    • 針對 Arguments (引數),將欄位保留空白。

    • 針對 Action on failure (失敗的動作),接受預設選項 (Continue (繼續))。

  5. 選擇 Add (新增)。該步驟會出現在主控台中,且狀態為待定。

  6. 隨著步驟的執行,步驟的狀態會依序從 Pending (待定)、Running (執行中) 變成 Completed (完成)。若要更新狀態,您可以選擇 Actions (動作) 欄上的 Refresh (重新整理) 圖示。

AWS CLI

這些範例示範如何使用 AWS CLI 來建立叢集並提交串流步驟。

若要使用 AWS CLI 建立叢集並提交串流步驟
  • 若要使用 AWS CLI 建立叢集並提交串流步驟,輸入以下命令並使用 EC2 金鑰對的名稱取代 myKey。請注意,--files 的引數應該是指令碼位置的 Amazon S3 路徑,-mapper-reducer 的引數應是對應指令碼檔案的名稱。

    aws emr create-cluster --name "Test cluster" --release-label emr-5.36.1 --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \ --steps Type=STREAMING,Name="Streaming Program",ActionOnFailure=CONTINUE,Args=[--files,pathtoscripts,-mapper,mapperscript,-reducer,reducerscript,aggregate,-input,pathtoinputdata,-output,pathtooutputbucket]
    注意

    包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入號 (^)。

    若您未使用 --instance-groups 參數指定執行個體計數,即會啟動單一主節點,且剩餘執行個體會以核心節點的形式啟動。所有節點都會使用命令中指定的執行個體類型。

    注意

    如果您先前尚未建立預設 Amazon EMR 服務角色和 EC2 執行個體設定檔,請先鍵入 aws emr create-default-roles 來建立這些項目,然後再鍵入 create-cluster 子命令。

    如需有關在 AWS CLI 中使用 Amazon EMR 命令的詳細資訊,請參閱 https://docs.aws.amazon.com/cli/latest/reference/emr