選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

端對端 Amazon EMR Java 原始程式碼範例

焦點模式
端對端 Amazon EMR Java 原始程式碼範例 - Amazon EMR

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

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

開發人員能夠使用自訂 Java 程式碼來呼叫 Amazon EMR API,然後透過 Amazon EMR 主控台或 CLI 執行相同的操作。本節提供安裝 AWS Toolkit for Eclipse 和執行全功能 Java 原始程式碼範例所需的end-to-end步驟,這些範例會將步驟新增至 Amazon EMR 叢集。

注意

此範例雖著重於 Java,但 Amazon EMR 也推出了一系列的 Amazon EMR 軟體開發套件來支援多種程式語言。如需詳細資訊,請參閱使用軟體開發套件呼叫 Amazon EMR API

此 Java 原始程式碼範例示範如何使用 Amazon EMR API 執行以下任務:

  • 擷取 AWS 憑證並將其傳送至 Amazon EMR 以進行 API 呼叫

  • 設定新的自訂步驟與新的預先定義步驟

  • 在現有 Amazon EMR 叢集新增步驟

  • 從執行中的叢集擷取叢集步驟 ID

注意

此範例將示範如何在現有叢集新增步驟,因此要求您在帳戶中擁有作用中的叢集。

在開始之前,請先安裝符合電腦平台的 Eclipse IDE for Java EE Developers (Eclipse IDE for Java EE Developers) 版本。如需詳細資訊,請前往 Eclipse 下載專區

接著,安裝適用於 Eclipse 的資料庫開發外掛程式。

安裝資料庫開發 Eclipse 外掛程式
  1. 開啟 Eclipse IDE。

  2. 選擇 Help (說明),接著選擇 Install New Software (安裝新軟體)

  3. Work with: (使用以下路徑:) 欄位中,輸入 http://download.eclipse.org/releases/kepler 或符合 Eclipse IDE 版本編號的路徑。

  4. 在項目清單中,請選擇 Database Development (資料庫開發),並按一下 Finish (完成)

  5. 在提示時重新啟動 Eclipse。

接著安裝 Toolkit for Eclipse,讓有用且預先設定的原始程式碼專案範本可以使用。

若要安裝 Toolkit for Eclipse
  1. 開啟 Eclipse IDE。

  2. 選擇 Help (說明),接著選擇 Install New Software (安裝新軟體)

  3. Work with: (使用:) 欄位中,輸入 https://aws.amazon.com/eclipse

  4. 在項目清單中,選擇 AWS Toolkit for Eclipse完成

  5. 在提示時重新啟動 Eclipse。

接著,建立新的 AWS Java 專案並執行範例 Java 原始程式碼。

建立新的 AWS Java 專案
  1. 開啟 Eclipse IDE。

  2. 依序選擇 File (檔案)New (新增),接著選擇 Other (其他)

  3. 選取精靈對話方塊中,選擇 AWS Java 專案,並按一下下一步

  4. 新 AWS Java 專案對話方塊中的 Project name: 欄位中,輸入新專案的名稱,例如 EMR-sample-code

  5. 選擇設定 AWS 帳戶...,輸入您的公有和私有存取金鑰,然後選擇完成。如需有關建立存取金鑰的詳細資訊,請參閱 Amazon Web Services 一般參考中的如何取得安全憑證?

    注意

    請勿直接在程式碼內嵌存取金鑰。Amazon EMR 軟體開發套件可讓您將存取金鑰放入已知位置,如此一來,就不必將其留在程式碼中。

  6. 在新的 Java 專案中按一下滑鼠右鍵並選取 src (src) 資料夾,然後選擇 New (新增),再選擇 Class (類別)

  7. Java Class (Java 類別) 對話方塊的 Name (名稱) 欄位中,輸入新類別的名稱,例如 main

  8. Which method stubs would you like to create? (您希望建立哪些 Stub 方法?) 區段中,選擇 public static void main(String[] args) (public static void main(String[] args)),然後按一下 Finish (完成)

  9. 在新的類別中輸入 Java 來源碼,並為範例內的類別和方法新增適當的 import (匯入) 陳述式。為方便起見,完整的原始程式碼列表如下所示。

    注意

    在下列範例程式碼中,將範例叢集 ID (JobFlowId) 取代為帳戶中的有效叢集 IDj-xxxxxxxxxxxx,可在 中找到, AWS Management Console 或使用下列 AWS CLI 命令:

    aws emr list-clusters --active | grep "Id"

    除此之外,您還需要將範例 Amazon S3 路徑 (s3://path/to/my/jarfolder) 替換成 JAR 的有效路徑。最後,將範例類別名稱 (com.my.Main1),更換為您 JAR 中正確的類別名稱 (如果適用)。

    import com.amazonaws.AmazonClientException; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce; import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder; import com.amazonaws.services.elasticmapreduce.model.*; import com.amazonaws.services.elasticmapreduce.util.StepFactory; public class Main { public static void main(String[] args) { AWSCredentials credentials_profile = null; try { credentials_profile = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException( "Cannot load credentials from .aws/credentials file. " + "Make sure that the credentials file exists and the profile name is specified within it.", e); } AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials_profile)) .withRegion(Regions.US_WEST_1) .build(); // Run a bash script using a predefined step in the StepFactory helper class StepFactory stepFactory = new StepFactory(); StepConfig runBashScript = new StepConfig() .withName("Run a bash script") .withHadoopJarStep(stepFactory.newScriptRunnerStep("s3://jeffgoll/emr-scripts/create_users.sh")) .withActionOnFailure("CONTINUE"); // Run a custom jar file as a step HadoopJarStepConfig hadoopConfig1 = new HadoopJarStepConfig() .withJar("s3://path/to/my/jarfolder") // replace with the location of the jar to run as a step .withMainClass("com.my.Main1") // optional main class, this can be omitted if jar above has a manifest .withArgs("--verbose"); // optional list of arguments to pass to the jar StepConfig myCustomJarStep = new StepConfig("RunHadoopJar", hadoopConfig1); AddJobFlowStepsResult result = emr.addJobFlowSteps(new AddJobFlowStepsRequest() .withJobFlowId("j-xxxxxxxxxxxx") // replace with cluster id to run the steps .withSteps(runBashScript, myCustomJarStep)); System.out.println(result.getStepIds()); } }
  10. 選擇 Run (執行),然後選擇 Run As (依此執行),最後選取 Java Application (Java 應用程式)

  11. 如果該範例正確執行,一份新步驟的 ID 清單會顯示在 Eclipse IDE 主控台視窗。正確輸出類似如下:

    [s-39BLQZRJB2E5E, s-1L6A4ZU2SAURC]
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。