提交自訂JAR步驟 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

提交自訂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步驟
  1. https://console.aws.amazon.com/emr 開啟 Amazon EMR主控台。

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

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

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

    • 對於步驟類型 ,選擇自訂 JAR

    • 對於名稱 ,接受預設名稱 (自訂 JAR) 或輸入新名稱。

    • 對於 JAR S3 位置 ,輸入或瀏覽至JAR檔案的位置。JAR 位置可能是進入 S3 的路徑,或 Classpath 中完全合格的 Java 類別。

    • 對於 Argument (引數),以空格分隔字串的形式輸入任何必要的引數,或將欄位留白。

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

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

  6. 隨著步驟的執行,步驟的狀態會依序從 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-label emr-7.3.0 \ --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \ --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://URI_to_JAR 以進行使用 啟動叢集並提交自訂JAR步驟 AWS CLI所述的程序。

  • 使用 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.json

    myConfig.json:

    [ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "path1,path2" } } ]

    應以逗號分隔的路徑清單應附加到每個任務的 JVM classpath。