私は最近試してみました Apache spark 。私の質問は、より具体的なトリガーspark jobs。 Here 理解についての質問を投稿しましたspark jobs。要件に移りました。
RESTエンドポイントを使用して、ジョブをトリガーするAPIを公開しています。残りの実装にはSpring4.0を使用しました。プログラムで、つまりエンドポイントがトリガーされたときに、指定されたパラメーターでジョブをトリガーすることを意味します。
以下に書かれたジョブと同様に、抽象クラスによって呼び出されるいくつかのジョブを維持する必要がありますJobScheduler
。
/*Can this Code be abstracted from the application and written as
as a seperate job. Because my understanding is that the
Application code itself has to have the addJars embedded
which internally sparkContext takes care.*/
SparkConf sparkConf = new SparkConf().setAppName("MyApp").setJars(
new String[] { "/path/to/jar/submit/cluster" })
.setMaster("/url/of/master/node");
sparkConf.setSparkHome("/path/to/spark/");
sparkConf.set("spark.scheduler.mode", "FAIR");
JavaSparkContext sc = new JavaSparkContext(sparkConf);
sc.setLocalProperty("spark.scheduler.pool", "test");
// Application with Algorithm , transformations
ポイントを超えて拡張すると、サービスによって処理されるジョブの複数のバージョンがあります。
または、Spark Job Serverを使用してこれを行います。
まず、この場合の最良の解決策は何か、実行の観点からもスケーリングの観点からも知りたいと思います。
注:Sparkからスタンドアロンクラスターを使用しています。親切に助けてください。
Spark JobServer https://github.com/spark-jobserver/spark-jobserver を使用するだけです
サービスを作成する際に考慮すべきことはたくさんありますが、Spark JobServerはそれらのほとんどをすでにカバーしています。ゼロから再発明するのではなく、システムにリクエストとコードを追加する
Spark=には隠されたREST APIがあり、ジョブを送信し、ステータスを確認し、強制終了します。
ここで完全な例を確認してください: http://arturmkrtchyan.com/Apache-spark-hidden-rest-api
Livy はオープンソースですREST Apacheと対話するためのインターフェースSpark=どこからでも。コードまたはプログラムのスニペットの実行をサポートします。 SparkローカルまたはApache Hadoop YARNで実行されるコンテキスト。
役に立つと思われる良いクライアントを次に示します。 https://github.com/ywilkof/spark-jobs-rest-client
編集:この答えは2015年に与えられました。現在利用可能なリヴィーのようなオプションがあります。