本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
提交自訂 JAR 步驟
自訂 JAR 會執行您可以上傳至 Amazon S3 的編譯 Java 程式。您應該針對想要啟動 Hadoop 版本編譯程式,然後將 CUSTOM_JAR
步驟提交到您的 Amazon EMR 叢集。如需有關如何編譯 JAR 檔案的詳細資訊,請參閱 使用 Amazon 建置二進位檔 EMR。
如需有關建置 Hadoop MapReduce 應用程式的詳細資訊,請參閱 Apache Hadoop 文件中的 MapReduce 教學課程
本章節涵蓋在 Amazon EMR 中提交自訂 JAR 步驟的基本知識。提交自訂 JAR 步驟可讓您撰寫指令碼來使用 Java 程式設計語言處理資料。
使用主控台提交自訂 JAR 步驟
此範例描述了如何使用 Amazon EMR 主控台來將自訂 JAR 步驟提交至執行中的叢集。
若要使用主控台提交自訂 JAR 步驟
在 https://console.aws.amazon.com/emr
:// 開啟 Amazon EMR 主控台。 -
在 Cluster List (叢集清單) 中,選擇您的叢集名稱。
-
向下捲動至 Steps (步驟) 區段並展開,接著選擇 Add step (新增步驟)。
-
在 Add Step (新增步驟) 對話中:
-
針對 Step type (步驟類型),選擇 Custom JAR (自訂 JAR)。
-
對於 Name (名稱),接受預設名稱 (自訂 JAR) 或輸入新名稱。
-
對於 JAR S3 location (JAR S3 位置),輸入或瀏覽到 JAR 檔案的位置。JAR 位置可能是連接至 S3 或是類別路徑中完整 Java 類別的路徑。
-
對於 Argument (引數),以空格分隔字串的形式輸入任何必要的引數,或將欄位留白。
-
針對 Action on failure (失敗的動作),接受預設選項 (Continue (繼續))。
-
-
選擇新增。該步驟會出現在主控台中,且狀態為待定。
-
隨著步驟的執行,步驟的狀態會依序從 Pending (待定)、Running (執行中) 變成 Completed (完成)。若要更新狀態,您可以選擇 Actions (動作) 欄上的 Refresh (重新整理) 圖示。
使用 啟動叢集並提交自訂 JAR 步驟 AWS CLI
使用 啟動叢集並提交自訂 JAR 步驟 AWS CLI
若要啟動叢集並使用 提交自訂 JAR 步驟 AWS CLI,請使用 --steps
參數輸入create-cluster
子命令。
-
若要啟動叢集並提交自訂 JAR 步驟,請輸入下列命令、將
myKey
取代為您的 EC2 金鑰對名稱,並將amzn-s3-demo-bucket
取代為您的儲存貯體名稱。aws emr create-cluster --name "
Test cluster
" --release-labelemr-7.6.0
\ --applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --ec2-attributes KeyName=myKey
--instance-typem5.xlarge
--instance-count3
\ --steps Type=CUSTOM_JAR
,Name="Custom JAR Step
",ActionOnFailure=CONTINUE
,Jar=pathtojarfile
,Args=["pathtoinputdata
","pathtooutputbucket
","arg1
","arg2
"]注意
包含 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。
第三方相依性
有時可能需要在 MapReduce classpath JAR 中包含此相依性以與您的程式搭配使用。執行此動作有兩種選項:
-
在步驟選項中包含
--libjars s3://
以進行使用 啟動叢集並提交自訂 JAR 步驟 AWS CLI所述的程序。URI_to_JAR
-
使用
mapred-site.xml
中經修改的mapreduce.application.classpath
設定來啟動叢集。使用mapred-site
組態分類。若要使用 步驟建立叢集 AWS CLI,如下所示:aws emr create-cluster --release-label
emr-7.6.0
\ --applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --instance-type m5.xlarge --instance-count 2 --ec2-attributes KeyName=myKey
\ --steps Type=CUSTOM_JAR
,Name="Custom JAR Step
",ActionOnFailure=CONTINUE
,Jar=pathtojarfile
,Args=["pathtoinputdata
","pathtooutputbucket
","arg1
","arg2
"] \ --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsonmyConfig.json
:[ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "
path1
,path2
" } } ]以逗號分隔的路徑清單應附加到每個任務的 JVM classpath。