選取您的 Cookie 偏好設定

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

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

新增 Spark 步驟 - Amazon EMR

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

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

新增 Spark 步驟

您可以使用 Amazon EMR 步驟來將工作提交到在 EMR 叢集上安裝的 Spark 架構。如需詳細資訊,請參閱《Amazon EMR 管理指南》中的步驟。在主控台與 CLI 中,使用 Spark 應用程式步驟 (其會代表您執行 spark-submit 指令碼做為步驟),來完成此動作。您透過 API 呼叫,使用 spark-submit 來使用步驟以叫用 command-runner.jar

如需有關將應用程式提交到 Spark 的詳細資訊,請參閱 Apache Spark 文件中的提交應用程式主題。

使用主控台來提交 Spark 步驟
  1. https://console.aws.amazon.com/emr:// 開啟 Amazon EMR 主控台。

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

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

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

    • Step type (步驟類型),選擇 Spark application (Spark 應用程式)

    • 對於 Name (名稱),接受預設名稱 (Spark 應用程式) 或輸入新名稱。

    • 使用 Deploy mode (部署模式) 時,請選擇 Client (用戶端)Cluster (叢集) 模式。用戶端模式會啟動叢集主要執行個體上的驅動程式程式,而叢集模式則會在該叢集上啟動您的驅動程式。對於客戶端模式,驅動程式的日誌輸出會出現在步驟日誌中,而對於叢集模式,驅動程式的日誌輸出會出現在第一個 YARN 容器的日誌中。如需詳細資訊,請參閱 Apache Spark 文件中的叢集模式概觀

    • 指定所需的 Spark-submit 選項。如需有關 spark-submit 選項的詳細資訊,請參閱透過 spark-submit 啟動應用程式

    • 對於 Application location (應用程式位置),指定應用程式本機或 S3 URI 路徑。

    • 針對 Arguments (引數),將欄位保留空白。

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

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

  6. 隨著步驟的執行,步驟的狀態會依序從 Pending (待定)Running (執行中) 變成 Completed (完成)。若要更新狀態,您可以選擇 Actions (動作) 欄上的 Refresh (重新整理) 圖示。

  7. 如果您有設定記錄,步驟結果會位於日誌檔案下步驟旁 Amazon EMR 主控台的「叢集詳細資訊」頁面中。您可以在啟動叢集時設定的日誌儲存貯體中選擇尋找步驟資訊。

使用 將工作提交至 Spark AWS CLI

當您建立叢集,或是在現有叢集中使用 aws emr add-steps 子指令時提交步驟。

  1. 如下列範例所示,使用 create-cluster

    注意

    包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。

    aws emr create-cluster --name "Add Spark Step Cluster" --release-label emr-7.7.0 --applications Name=Spark \ --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \ --steps Type=Spark,Name="Spark Program",ActionOnFailure=CONTINUE,Args=[--class,org.apache.spark.examples.SparkPi,/usr/lib/spark/examples/jars/spark-examples.jar,10] --use-default-roles

    替代方案是如下列範例所示,使用 command-runner.jar

    aws emr create-cluster --name "Add Spark Step Cluster" --release-label emr-7.7.0 \ --applications Name=Spark --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \ --steps Type=CUSTOM_JAR,Name="Spark Program",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[spark-example,SparkPi,10] --use-default-roles
    注意

    包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。

  2. 或者,將步驟新增至執行中的叢集。請使用 add-steps

    aws emr add-steps --cluster-id j-2AXXXXXXGAPLF --steps Type=Spark,Name="Spark Program",ActionOnFailure=CONTINUE,Args=[--class,org.apache.spark.examples.SparkPi,/usr/lib/spark/examples/jars/spark-examples.jar,10]

    替代方案是如下列範例所示,使用 command-runner.jar

    aws emr add-steps --cluster-id j-2AXXXXXXGAPLF --steps Type=CUSTOM_JAR,Name="Spark Program",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[spark-example,SparkPi,10]
若要使用適用於 Java 的 SDK 將工作提交給 Spark
  1. 以下範例說明如何使用 Java 透過 Spark 新增叢集步驟。

    AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); AmazonElasticMapReduce emr = new AmazonElasticMapReduceClient(credentials); StepFactory stepFactory = new StepFactory(); AmazonElasticMapReduceClient emr = new AmazonElasticMapReduceClient(credentials); AddJobFlowStepsRequest req = new AddJobFlowStepsRequest(); req.withJobFlowId("j-1K48XXXXXXHCB"); List<StepConfig> stepConfigs = new ArrayList<StepConfig>(); HadoopJarStepConfig sparkStepConf = new HadoopJarStepConfig() .withJar("command-runner.jar") .withArgs("spark-submit","--executor-memory","1g","--class","org.apache.spark.examples.SparkPi","/usr/lib/spark/examples/jars/spark-examples.jar","10"); StepConfig sparkStep = new StepConfig() .withName("Spark Step") .withActionOnFailure("CONTINUE") .withHadoopJarStep(sparkStepConf); stepConfigs.add(sparkStep); req.withSteps(stepConfigs); AddJobFlowStepsResult result = emr.addJobFlowSteps(req);
  2. 檢查步驟日誌以查看步驟的結果。 AWS Management Console 如果您已啟用記錄,則可以在 中執行此操作,方法是選擇步驟、選擇步驟,然後在日誌檔案中選擇 stdoutstderr。若要查看可用的日誌,請選擇 View Logs (檢視日誌)

覆寫 Spark 預設組態設定

您可以根據每個應用程式覆寫 Spark 預設組態值。您可以使用基本上會將選項傳遞至 spark-submit 的步驟來在提交應用程式時這麼做。例如,您可以想要透過變更 spark.executor.memory 來變更對執行器程序分配的記憶體。您可以使用如下引數提供 --executor-memory 參數:

spark-submit --executor-memory 1g --class org.apache.spark.examples.SparkPi /usr/lib/spark/examples/jars/spark-examples.jar 10

同樣地,您可以微調 --executor-cores--driver-memory。在步驟中,您會將下列引數提供給步驟:

--executor-memory 1g --class org.apache.spark.examples.SparkPi /usr/lib/spark/examples/jars/spark-examples.jar 10

您可以使用 --conf 選項來微調可能沒有內建參數的設定。如需有關其他可微調設定的詳細資訊,請參閱 Apache Spark 文件中的動態載入 Spark 屬性主題。

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