本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
提交串流步驟
本章節涵蓋將串流步驟提交到叢集的基本知識。串流應用程式會從標準輸入讀取輸入,然後針對每個輸入執行指令碼或可執行檔 (稱為映射器)。每個輸入的結果通常會儲存在本機 (通常在 Hadoop 分散式檔案系統 (HDFS) 分割區)。在映射器處理完所有輸入後,第二個指令碼或可執行檔 (稱為縮減器) 會處理映射器結果。縮減器的結果會傳送到標準輸出。您可以將一系列串流步驟串在一起,其中一個步驟的輸出會成為另一個步驟的輸入。
可以參考映射器和縮減器做為檔案,或您可以提供 Java 類別。您可以任何支援的語言 (包括 Ruby、Perl、Python、PHP 或 Bash) 實作映射器和縮減器。
使用主控台提交串流步驟
此範例描述了如何使用 Amazon EMR 主控台來將串流步驟提交至執行中的叢集。
若要提交串流步驟
在 https://console.aws.amazon.com/emr
:// 開啟 Amazon EMR 主控台。 -
在 Cluster List (叢集清單) 中,選擇您的叢集名稱。
-
向下捲動至 Steps (步驟) 區段並展開,接著選擇 Add step (新增步驟)。
-
在 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 (繼續))。
-
-
選擇新增。該步驟會出現在主控台中,且狀態為待定。
-
隨著步驟的執行,步驟的狀態會依序從 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-labelemr-7.7.0
--applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --ec2-attributes KeyName=myKey
--instance-typem5.xlarge
--instance-count3
\ --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
子命令。如需在 中使用 Amazon EMR 命令的詳細資訊 AWS CLI,請參閱 https://docs.aws.amazon.com/cli/latest/reference/emr。