2016/4/8にAsakusa Framework0.8.0がリリースされていた。→リリースノート
AsakusaFW0.8.0では、まず、対応プラットフォーム(バージョン)がけっこう変わった。→互換性に関して
JDK1.6が非対応になったり、Hadoop1系が非対応になったり、Gradle1系が非対応になったり、Mavenが非対応になったり。
build.gradleの書き方もけっこう変わった。→0.8系の変更点
wrapperの指定が不要になったり、apply pluginで指定するプラグイン名が変わったり。
EclipseだけでなくIntelliJ IDEAにも対応したようだ。
Hadoop1系が非対応になったので、asakusafwVersionのバージョン体系も、AsakusaFW0.7でhadoop1やhadoop2を付けるようになったのが、再び不要になった^^;
というか、AsakusaFWのバージョンはAsakusa on SparkやAsakusa on M3BPのバージョンから自動的に判別されるようになったようで、asakusafwVersionは明示しなくなった。
そして、Gradleコマンドに、(build.graldeにAsakusaFWのバージョンを書かなくなったので)バージョンを確認するためのタスク(asakusaVersion、略すときはaV)が追加になっている。
あと、Hadoop(MapReduce)版バッチを生成するためのタスク名がcompileBatchappからmapreduceCompileBatchappsに変更になった。
Asakusa on SparkのコンパイルタスクがsparkCompileBatchapps、Asakusa on M3BPがm3bpCompileBatchappsなので、統一されたということだ。
(DMDL EditorXも対応済み)
Asakusa on Sparkも変更があって、今までは開発者プレビュー版だったが、今回(Asakusa on Spark 0.3.0)から正式版となった。
→Asakusa on Sparkのリリースノート
そして、Iterative Extensions(反復機能)が追加になった。(試験的機能扱い)
これは、実行時の引数の値を複数指定して、1バッチとして同時に実行するもの。リソースを効率的に扱えるので、個別に引数を変更して複数回バッチを実行するよりも、全体として実行時間が短くなる(ことが期待される)らしい。
この反復機能の為に、AsakusaFWの歴史上初のAsakusaDSLの拡張(@Iterativeアノテーションの追加)が行われたそうだ。
ただし、このアノテーションを付ける必要があるので、今までのアプリが無修正で反復可能になるわけではない。
そして今回最大の目玉が、Asakusa on M3BP。
M3BPは、フィックスターズ社が開発した、単一ノード・マルチコア用のデータ処理エンジン。
今までは、SparkやHadoopで処理するには小さいデータ(数十GB程度)だと、YARNを起動したりする時間(いわゆるHadoop税)が相対的に大きかった。そういう小さいデータの処理をターゲットにしているのがM3BP。
1台のサーバー上で、完全にオンメモリーで動作する。(データがメモリーに乗り切らなかったら落ちるらしい。そういうサイズのデータならAsakusa on Sparkで処理すればいいという考え)
要するに、M3BPは単一ノード上でマルチスレッドで動作する処理エンジンだと思う。
だが、Javaのスレッドではなく、ネイティブスレッドで動作するので、Javaより速いらしい。
AsakusaFWでこれを扱えるの、すごく画期的だと思う!
例によって、AsakusaDSLのコンパイルのみでMapReduce版・Spark版・M3BP版が切り替えられるし^^
※コメント投稿者のブログIDはブログ作成者のみに通知されます