本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
提交 Pig 工作
本章節示範將 Pig 工作提交到 Amazon EMR 叢集。接下來的範例會產生包含總位元組傳輸的報告 (前 50 個 IP 地址清單、前 50 個外部推薦網站清單、以及使用 Bing 和 Google 的前 50 個搜尋詞彙)。Pig 指令碼位於 Amazon S3 儲存貯體 s3://elasticmapreduce/samples/pig-apache/do-reports2.pig
中。輸入資料位於 Amazon S3 儲存貯體 s3://elasticmapreduce/samples/pig-apache/input
中。輸出會儲存到 Amazon S3 儲存貯體。
使用 Amazon EMR 主控台提交 Pig 工作
此範例描述了如何使用 Amazon EMR 主控台來將 Pig 步驟新增至叢集。
若要提交 Pig 步驟
在 https://https://console.aws.amazon.com/emr
開啟 Amazon EMR 主控台。 -
選擇建立叢集,以建立已安裝 Pig 的叢集。如需了解建立叢集的步驟,請參閱計劃與設定 Amazon EMR 叢集。
-
開啟終端,然後按使用 SSH 連線到主節點中概述的步驟透過 SSH 連線至叢集的主節點。完成這些操作後,請執行下列步驟。
sudo mkdir -p /home/hadoop/lib/pig/ sudo aws s3 cp s3://elasticmapreduce/libs/pig/0.3/piggybank-0.3-amzn.jar /home/hadoop/lib/pig/piggybank.jar
-
在主控台中,點按叢集清單,然後選取您建立的叢集的名稱。
-
向下捲動至 Steps (步驟) 區段並展開,接著選擇 Add step (新增步驟)。
-
在 Add Step (新增步驟) 對話中:
-
針對 Step type (步驟類型),選擇 Pig program (Pig 程式)。
-
針對 Name (名稱),接受預設名稱 (Pig 程式) 或輸入新名稱。
-
針對 Script S3 location (指令碼 S3 位置),輸入 Pig 指令碼的位置。例如:
s3://elasticmapreduce/samples/pig-apache/do-reports2.pig
。 -
針對 Input S3 location (輸入 S3 位置),輸入輸入資料的位置。例如:
s3://elasticmapreduce/samples/pig-apache/input
。 -
針對輸出 S3 位置,輸入或瀏覽至 Amazon S3 輸出儲存貯體的名稱。
-
針對 Arguments (引數),將欄位保留空白。
-
針對 Action on failure (失敗的動作),接受預設選項 (Continue (繼續))。
-
-
選擇新增。該步驟會出現在主控台中,且狀態為待定。
-
隨著步驟的執行,步驟的狀態會依序從 Pending (待定)、Running (執行中) 變成 Completed (完成)。若要更新狀態,您可以選擇 Actions (動作) 欄上的 Refresh (重新整理) 圖示。完成該步驟後,檢查您的 Amazon S3 儲存貯體,以確定 Pig 步驟的輸出檔案存放在該儲存貯體中。
使用 提交 Pig 工作 AWS CLI
使用 提交 Pig 步驟 AWS CLI
當您使用 啟動叢集時 AWS CLI,請使用 --applications
參數來安裝 Pig。若要使用 --steps
參數來提交 Pig 步驟。
-
若要啟動已安裝 Pig 的叢集,請輸入下列命令,將
myKey
和amzn-s3-demo-bucket/
取代為您的 EC2 金鑰對和 Amazon S3 儲存貯體的名稱。aws emr create-cluster \ --name "
Test cluster
" \ --log-uri s3://amzn-s3-demo-bucket/
\ --release-labelemr-5.36.2
\ --applications Name=Pig \ --use-default-roles \ --ec2-attributes KeyName=myKey
\ --instance-typem5.xlarge
\ --instance-count3
注意
包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。
若您未使用
--instance-groups
參數指定執行個體計數,即會啟動單一主節點,且剩餘執行個體會以核心節點的形式啟動。所有節點都會使用命令中指定的執行個體類型。注意
如果您先前尚未建立預設 EMR 服務角色和 EC2 執行個體設定檔,請先鍵入
aws emr create-default-roles
來建立這些設定檔,然後再鍵入create-cluster
子命令。 -
若要提交 Pig 步驟,請輸入下列命令,將
myClusterId
和amzn-s3-demo-bucket
取代為您的叢集 ID 和 Amazon S3 儲存貯體名稱。aws emr add-steps \ --cluster-id
myClusterId
\ --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://amzn-s3-demo-bucket
/pig-apache/output]此命令將傳回步驟 ID,您可以用它來檢查步驟的
State
。 -
使用
describe-step
命令來查詢步驟狀態。aws emr describe-step --cluster-id
myClusterId
--step-ids-1XXXXXXXXXXA
當步驟執行時,步驟的
State
會從PENDING
變更為RUNNING
到COMPLETED
。完成該步驟後,檢查您的 Amazon S3 儲存貯體,以確定 Pig 步驟的輸出檔案存放在該儲存貯體中。
如需在 中使用 Amazon EMR 命令的詳細資訊 AWS CLI,請參閱 AWS CLI 命令參考。