eclipseコミットsparkアプリケーションの実行


Sparkアプリケーションのコミットの一般的な方法は,プログラムをjarパッケージにパッケージ化した後,spark-submitを用いてコミット実行を行うことである.
では、sparkアプリケーションの実行をeclipseで直接コミットする可能性はありますか?
答えはもちろんいいです!
本人の環境はこのようです:1つのsparkクラスタがあって、1台の独立した開発の機械はeclipseを運行します
(1)開発言語scala
(2)構築ツールsbt
開発の過程で注意しなければならないのは2点です.
(1)コード作成が完了したら,sbtを用いてパッケージングを行う.
(2)コードに次のコードを追加します.
(注:spark streamingプログラムを書いているので、SparkContextプロパティがあるStreamingContextを使用しています)
val ssc = new StreamingContext(sparkConf, Seconds(1))
ssc.sparkContext.addJar("F:\\spark-scala-wordcount-network-assembly-1.0.jar")

このコードの役割は何なのか、想像するのは難しくありません.私たちはeclipseの下でsparkアプリケーションを実行します.つまりdriverもeclipseの下で実行します.では、具体的な分析コードはどのようにsparkのworkerノードに伝わりますか.そのため、アプリケーションコードjarパッケージをsparkContextでアップロードし、worker側で実行する必要があります.そうでないとNoClassFound異常がパッケージされます.
      
最後に補足します.
eclipseを使用してsparkアプリケーションを直接実行すると、異常が発生する可能性があります.
  Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
以上の警告メッセージが表示された場合、理由は次のとおりです.
(1)SParkリソースは本当に足りないかもしれませんが、リソースの追加に注意してください
(2)sparkクラスタ内のノードにeclipseが存在するマシンドメイン名のIP情報が配置されていない.各ノードの/etc/hostsでIPへのドメイン名のマッピングを構成する必要があります.