EMRで2つのステップを同時に実行しようとしています。ただし、常に最初のステップを実行し、2番目のステップを保留にします。
私の糸の構成の一部は次のとおりです:
{
"Classification": "capacity-scheduler",
"Properties": {
"yarn.scheduler.capacity.resource-calculator": "org.Apache.hadoop.yarn.util.resource.DominantResourceCalculator",
"yarn.scheduler.capacity.maximum-am-resource-percent": "0.5"
}
}
ローカルMacで実行すると、2つのアプリケーションを同様の構成でYarnで実行できます。変更は実際にはspark submit resource request)で、必要なクラスターの容量とパフォーマンスに一致します。
言い換えると、私の糸は複数のアプリケーションを実行するように設定されています。
したがって、私はそれに深く掘り下げる前に、実際にステップを同時に実行することはできますか、それとも逐次的にのみ実行することは可能ですか?
他に、同時に実行するために実行するためのヒントや何かありますか?
私のクラスターは、各ジョブが要求するものに関して、容量が過剰です。したがって、同時に実行できない理由がわかりません。
ステップを同時に実行することはできますか、それとも逐次的にのみ実行できますか?
同時に実行するためのヒントや何か何かありますか?
spark-history server
__On your local mac, you are able to run multiple YARN application in parallel because you are submitting the applications to yarn directly, whereas in EMR the yarn/spark applications are submitted through AWS's internal `command-runner.jar`, it does a bunch of other logging/bootstrapping etc to be able to see the `emr step` info on the web console.
_
AWS EMRヤーンでアプリケーションを実行するには、2つのモードがあります。
クライアントモードを使用する場合は、一度に1つのステップのみが実行状態になります。ただし、1つ以上のステップを同時に実行できるオプションがあります。
ブローモードでステップを送信してみてください:spark-submit --master yarn --deploy-mode cluster --executor-memory 1G --num-executors 2 --driver-memory 1g --executor-cores 2 --conf spark。 yarn.submit.waitAppCompletion = false --class WordCount.Word.App /home/hadoop/Word.jar
これがあなたのために役立つことを願っています。
あなたはいつもバックグラウンドでステップを置くことができます。ロギングと競合状態を処理する場合は問題になりません。
step-job.sh
#!/bin/bash
function main(){
do_this
do_that
}
if [[ "$1" == "1" ]]; then
main
else
/bin/bash "$0" 1 $@ &
fi