runner.jar与直接引用jar路径)正确启动使用spark的emr集群

tpgth1q7  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(188)

如果我尝试使用sdkforjava在emr上运行spark作业,哪种方法更正确?这两种方法我都见过,但目前都对我不利,所以我不确定哪种方法是创建 HadoopJarStepConfig .
使用command-runner.jar(如下两个示例所示:
https://docs.aws.amazon.com/emr/latest/releaseguide/emr-spark-submit-step.html

https://www.javatips.net/api/dl4j-examples-master/dl4j-spark-examples/dl4j-spark/src/main/java/org/deeplearning4j/emr/emrsparkexample.java)

HadoopJarStepConfig runExampleConfig = new HadoopJarStepConfig()
        .withJar("command-runner.jar")
        .withArgs(
            "spark-submit",
            "--master", "yarn",
            "--deploy-mode", "cluster",
            "--driver-class-path", JAR_LOCATION,  // unsure if this helps
            "--class", MAIN_CLASS,
            JAR_LOCATION,
            "-useSparkLocal", "false"
        );

没有command-runner.jar(如下所示:https://sysadmins.co.za/aws-create-emr-cluster-with-java-sdk-examples/)

HadoopJarStepConfig runExampleConfig = new HadoopJarStepConfig()
        .withJar(JAR_LOCATION)
        .withMainClass(MAIN_CLASS);

在这两种情况下,我都创建了一个 RunJobFlowRequest 带释放标签 emr-5.15.0 ,Spark Application ,以及其他与问题无关的设置。此外,jar存储在s3桶中。
对于context,第一种方法会导致出于某种原因跳过myjar(这里详细介绍了如何使用awsdkforjava在emr上运行spark,但是它会跳过存储在s3上的远程jar);第二种方法导致org.apache.spark.someclass出现classnotfoundexception。我想这可能是因为我的jar是超级/超级jar,而且我没有给任何东西着色。。。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题