現在、2つのスパークアプリケーションを展開するようになっており、アプリケーションごとにコアとエグゼキュータを制限したいと考えています。スパークアプリケーションが1つのコアでのみ動作しない
ここで問題となるのは、この厳密な設定では、1つのストリーミングアプリケーションが動作し、もう1つは動作しないということです。 RUNNINGと継続的にログに以下のメッセージを出力します:動作しないアプリケーションでは、状態のまま、私は次のように設定を変更した場合
17/03/06 10:31:50 INFO JobScheduler: Added jobs for time 1488814310000 ms
17/03/06 10:31:55 INFO JobScheduler: Added jobs for time 1488814315000 ms
驚くべきことに、今働いていなかった同じアプリケーションが問題なく進みます。
spark.executor.cores=3
spark.driver.cores=1
spark.cores.max=3
spark.executor.instances=3
注:アプリケーションは、私はこのようにいくつかのストリーミングアプリケーションが他よりもコアを必要とすることが表示されます3.
の最小値を使用する理由です値2では動作しません。私の質問は、アプリケーションが必要とするリソースの量を決定するものです。 1つのアプリケーションを3つのコアで実行すると同時に、1つのコアで実行できないのはなぜですか?
。 ; ' 基本的には、それ以降の ' JavaReceiverInputDStream結果= MQTTUtils.createStream(JSSC、brokerUrl、mqttTopic、クライアントID、 \t \t \t \tユーザ名、パスワード、偽):実は私はこの命令を使用してMQTTと直接ストリームを作成します私は、ストリームデータを取得するために次の行を使用して、さらに分析を行います。 'JavaDStream ライン= results.flatMap(新しいFlatMapFunction <文字列、文字列>(){ \t \t \t公共イテレータコール(列X){ \t \t \t \t戻り値Arrays.asList(x).iterator(); \t \t \t} \t \t}); 'あなたはスパークUIを見て、エグゼキュータ・ページに無料のコードを確認することができます –
。空きコアがない場合は、実行中のタスクを確認してここに投稿してください。 – zsxwing
私は合計50のコアと13を使用しています。 –