通过AWS-cli向AWS EMR提交带有参数的spark作业



我想修改提交到Google Dataproc集群的spark作业。这些作业将在AWS EMR集群上运行。

gcloud dataproc jobs submit spark 
--cluster "${HADOOP_CLUSTER_NAME}" 
--properties "${SPARK_PARTITIONS}${SPARK_PARALLELISM}spark.master=yarn,spark.app.name=${APP},spark.sql.parquet.mergeSchema=false,spark.driver.memory=${D_MEMORY},spark.ui.port=0,spark.dynamicAllocation.enabled=false,spark.executor.extraJavaOptions=-XX:+UseG1GC -XX:InitiatingHeapOccupancyPercent=35,spark.driver.extraClassPath=/usr/lib/hadoop-lzo/lib/*:./" 
--class com.custom.scriptrunner.MyCustomSparkScriptRunner 
--files $CONFIG,$TRUSTSTORE 
--jars $JARS 
-- -s $SCRIPT -c $CONFIG_FILE -r $CONFIG_ROOT -l myMetrics

我已经在主节点上尝试了以下spark提交,而不是AWS EMR cli:

spark-submit --deploy-mode cluster --class com.custom.scriptrunner.MyCustomSparkScriptRunner --files $CONFIG_FILE --jars $JARS --conf spark.app.name=${APP} --conf spark.driver.extraClassPath=/usr/lib/hadoop-lzo/lib/*:./ -s $SCRIPT -c $CONFIG_FILE_NAME -r $CONFIG_ROOT -l myMetrics

但我找不到添加以下参数行的方法(使用spark-submit或AWS EMR-cli(。它不承认这些选项。

-- -s $SCRIPT -c $CONFIG_FILE -r $CONFIG_ROOT -l myMetrics

还找到了这个AWS CLI命令,但仍然找不到指定上述参数的语法。

aws emr add-steps --cluster-id j-xxxxxxxx --steps Name="add emr step to run spark",Jar="command-runner.jar",Args=[spark-submit,--class,org.apache.spark.examples.SparkPi,/usr/lib/spark/examples/jars/spark-examples.jar,10]

您可以将参数传递给此处提到的spark-submit,并根据每个参数在应用程序代码中的位置读取每个参数。

最新更新