SparkジョブをREST APIで実行したいので、Scala for Sparkを使用したいと思います。私はSpringフレームワークを持つScalaプロジェクトと混合Javaの&を持っています。私はSparkContextを作成し、REST APIによっていくつかの仕事をするScalaメソッドを呼び出すことができます。この問題は、ローカルではなくマスターリモートを設定するときに発生します。Spring RESTfulサービスからのSparkジョブの実行
val conf = new SparkConf().setAppName("App").setMaster("local")
val sc = new SparkContext(conf)
java.lang.ClassNotFoundException
を引き起こし
罰金ですが、
val conf = new SparkConf().setAppName("App").setMaster(" spark://10.122.221.164:7077")
val sc = new SparkContext(conf)
。私がこれまでに見つけることができる
ソリューションがfat-jarファイルを作成し、conf.setJars(...)
を行う、またはProcessBuilder
のようなものを経由してスクリプトを使用しています。
私の現在の設定では、Tomcatなどで実行するwar
ファイルにパックされているSpark Scalaコードを含む唯一のSpringプロジェクトしかないので、fat-jarはありません。私は、Springプロジェクトと、それぞれがfat-jarとしてパックされたいくつかの別々のScalaアプリケーションを持つことは望ましくありません。シンプルで合理的なアーキテクチャをどうやって考え出すことができますか?
なぜMavenを使用してpom.xmlに依存関係を追加しないのですか?私はSpringとSparkを一緒に使ってきました。試してみてください。 – Dip
@DipすでにMavenを使用しています。私は、脂肪の瓶を構築するために 'mvn package'を使うことができますが、私はなぜこれらのSpringプロジェクトとSparkドライバアプリを分けなければならないのか分かりません。 – groove