本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
提交自訂JAR步驟
自訂 會JAR執行編譯的 Java 程式,您可以將其上傳至 Amazon S3。您應該根據要啟動的 Hadoop 版本編譯程式,並將CUSTOM_JAR
步驟提交至您的 Amazon EMR叢集。如需如何編譯JAR檔案的詳細資訊,請參閱 使用 Amazon 建置二進位檔 EMR。
如需建置 Hadoop MapReduce 應用程式的詳細資訊,請參閱 Apache Hadoop 文件中的MapReduce 教學課程
本節涵蓋在 Amazon 中提交自訂JAR步驟的基本知識EMR。提交自訂JAR步驟可讓您編寫指令碼,以使用 Java 程式設計語言處理資料。
使用主控台提交自訂JAR步驟
此範例說明如何使用 Amazon EMR主控台將自訂JAR步驟提交至執行中的叢集。
使用主控台提交自訂JAR步驟
在 https://console.aws.amazon.com/emr
開啟 Amazon EMR主控台。 -
在 Cluster List (叢集清單) 中,選擇您的叢集名稱。
-
向下捲動至 Steps (步驟) 區段並展開,接著選擇 Add step (新增步驟)。
-
在 Add Step (新增步驟) 對話中:
-
對於步驟類型 ,選擇自訂 JAR。
-
對於名稱 ,接受預設名稱 (自訂 JAR) 或輸入新名稱。
-
對於 JAR S3 位置 ,輸入或瀏覽至JAR檔案的位置。JAR 位置可能是進入 S3 的路徑,或 Classpath 中完全合格的 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.3.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執行個體設定檔,請在輸入
create-cluster
子命令之前輸入aws emr create-default-roles
來建立它們。如需在 中使用 Amazon EMR命令的詳細資訊 AWS CLI,請參閱 https://docs.aws.amazon.com/cli/latest/reference/emr。
第三方相依性
有時可能需要將 包含在 MapReduce classpath 中JARs,才能與程式搭配使用。執行此動作有兩種選項:
-
在步驟選項中包含
--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.3.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。