我想修改提交到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,并根据每个参数在应用程序代码中的位置读取每个参数。