私はまだSparkの新機能がありますが、Spark Appを作成することができました。私は、JDBCドライバを使用してSQL Serverからデータを再処理できるようにする必要があります(高価なSPを削除しています) SQL ServerをJDBC経由でデータフレームに変換した後、いくつかの結合、グループ、フィルタを実行して、最終的に結果を別のテーブルにJDBC経由で戻します。このすべてはAmazon Web ServicesのSpark EMRでm3.xlargeで約2分で約2分で正常に実行されます。私のSpark Appは1人のエグゼキュータだけで動作しているのはなぜですか?
私の質問は次のとおりです:1.今はクラスタに1つのマスターと2つのコアがありますが、新しいステップを起動するたびに、履歴サーバーから見ることができます私は2人のエグゼクティブが表示されているので、使用されていないドライバー、id 1のエグゼキューターが約1410個のタスクを処理しているのを見ることができます。そして、私はどのように進むべきかについて完全にはわかりません。
また、これはAWSに固有のものですが、何らかの形で関連する2つの質問を投稿したくないのですが、同時に2つのステップを実行できる方法はありますか?このプロセスを1日に何度も実行する(クライアントデータを処理する)ので、このプロセスの2回のスパークサブミットを同時に実行できることを意味します。私はそのステップで新しいクラスタを立ち上げることができると知っていますが、私は処理を速くしたいだけで、新しいクラスタを立ち上げるだけでも時間がかかります。 ありがとうございます!あなたの最初の質問については
あなたは糸(AWS EMR 4.x)で走っていますか?あなたは何(spark-submit)コマンドを起動しますか? –
はい、私はEMR 4.6を実行しています。私はそれを何度もさまざまな議論と小さな変化で立ち上げました。 "spark-submit --deploy-mode cluster --executor-memory 10g --total-executor-cores 8 ..."または "spark-submit --master yarn --deploy-mode cluster --num-executors 3。 .. "とその他いくつかの変更点があります。 –
データを読み取っている間に偶然に遅い(実行者が1人しかいない)のですか? Sparkは、明らかにHDFSから直接読み取るときには並行して読み込むだけであることに注意してください。他のデータソースから読み込むと、ただ一つのエグゼキュータが使用されます(私が気付いたときに[this](https://www.dataiku.com/learn/guide/spark/tips-and-troubleshooting.html)を見つけました) S3からの同じ問題の読書)。 –