SlideShare a Scribd company logo
2015/11/28
ひしだま
Java8  Stream  APIとApache  Sparkと
Asakusa  Frameworkの類似点・相違点
JJUG  CCC  2015  Fall
2
セッション内容
 前提
l JJUGの皆さんならJava8  Stream  APIは知って
いる。
 Java8  Stream  APIとApache  SparkとAsakusa  
Frameworkのコーディングは、DAGを利利⽤用して
いるという点で似ている。
 これらを⽐比較しつつAsakusa  Frameworkを紹
介する。
3
⽬目次
1. ⾃自⼰己紹介
2. Stream  API・Spark・AsakusaFWの紹介
3. Stream  API・Spark・AsakusaFWの類似点
4. Stream  API・Spark・AsakusaFWの相違点
5. まとめ
4
⾃自⼰己紹介
 ひしだま
 Twitter  ID:@hishidama
 ホームページ
– 灰⾊色なことで有名??
– http://hiroba.dqx.jp/sc/character/
1091135261820/
 最近の仕事
– AsakusaFWを使ったアプリケーション作成
– DQ10:僧侶・道具職⼈人
5
(⾃自分と)各プロダクトの年年表
時期	
 出来事	
2006年	
 Apache Hadoop〔Nutchから独立〕	
Java6リリース	
2010年 2月	
 (Hadoopを知る)	
2010年 初頭	
 Spark〔OSS化〕	
2011年 3月末	
 Asakusa Framework公開	
2011年 7月	
 (Sparkを知る)	
2012年 2月	
 (SIerから転職)	
2012年 8月	
 DQ10発売	
2014年 2月	
 Apache Spark〔トップレベル昇格〕	
2014年 3月	
 Java8リリース
6
StreamAPI・Spark・
AsakusaFWの紹介
今回の話題に関連するプロダクト
7
Java8  Stream  API
 「内部イテレーター」で処理理を⾏行行う為のAPI
– 参考⽂文献:『現場で使える最新Java  SE  7/8速攻⼊入
⾨門』
8
Apache  Hadoop(1/3)
 分散処理理フレームワーク
l HDFS(分散ファイルシステム)
l MapReduce(処理理⽅方式・アルゴリズム)
l YARN(リソース管理理)
1. データを複数のマシン上に分散して配置する
2. MapReduceアプリケーション(jarファイル)
を各マシンに転送して分散処理理する
9
Apache  Hadoop(2/3)
DBサーバー
	
データ	
バッチサーバー
	
app	
サーバー
データ	
 app	
Hadoopクラスター	
従来型バッチ	
 Hadoopバッチ	
アプリケーションのある場所に
データを転送する。	
サーバー
データ	
 app	
サーバー
データ	
 app	
データのある場所に
アプリケーションを転送する。
10
Apache  Hadoop(3/3)
 Hadoopの功績
l  「ビッグデータ」はバズワード化したが、⽴立立役者で
あるHadoopは分散処理理を⾝身近にした。
 Hadoopの弱点
l MapReduceはシンプルだが、コーディングし
づらい。
l 常にファイルを読み書きするというシンプルな
構成なので、メモリーにデータをキャッシュし
て使い回すようなことが出来ない。
機械学習とかで
欲しいらしい?
11
Apache  Spark
 分散処理理フレームワーク
l RDDを使ったコーディング(Scala)
l データをメモリー上にキャッシュして使い回す
ことが出来る。
l 分散ファイル⼊入出⼒力力にはHDFSを利利⽤用する。
 カリフォルニア⼤大学バークレイ校のAMPLabで
開発され、現在はDatabricksがサポート
l https://databricks.com/spark/about
l 参考⽂文献:『Apache  Spark⼊入⾨門』
12
Asakusa  Framework
 分散処理理するバッチアプリケーションを作成す
る為のフレームワーク
l 実⾏行行基盤としてHadoopやSparkを使⽤用
 ノーチラステクノロジーズが開発・サポート
l  http://www.asakusafw.com/
13
StreamAPI・Spark・
AsakusaFWの類似点
14
Java8  Stream  API
 例例
MyOperator	
 operator	
 =	
 new	
 MyOperator();	
 
Stream<Data>	
 s0	
 =	
 初期データ;	
 
Stream<Data>	
 s1	
 =	
 s0.filter(operator::f);	
 
Stream<Data>	
 s2	
 =	
 s1.map(operator::m);	
 
List<Data>	
 out1	
 =	
 s2.collect(Collectors.toList());	
 
「メソッド参照」
構文
15
Java8  Stream  API
 MyOperatorの例例
public	
 class	
 MyOperator	
 {	
 
	
 
	
 	
 public	
 boolean	
 f(Data	
 data)	
 {	
 
	
 	
 	
 	
 return	
 data.getValue()	
 %	
 2	
 ==	
 0;	
 
	
 	
 }	
 
	
 
	
 	
 public	
 Data	
 m(Data	
 data)	
 {	
 
	
 	
 	
 	
 return	
 new	
 Data(data.getValue()	
 +	
 1);	
 
	
 	
 }	
 
}
16
Java8  Stream  API
 例例
MyOperator	
 operator	
 =	
 new	
 MyOperator();	
 
Stream<Data>	
 s0	
 =	
 初期データ;	
 
Stream<Data>	
 s1	
 =	
 s0.filter(operator::f);	
 
Stream<Data>	
 s2	
 =	
 s1.map(operator::m);	
 
List<Data>	
 out1	
 =	
 s2.collect(Collectors.toList());	
 
これをDAGで表現してみる
17
【余談】DAG(1/2)
 グラフ理理論論
l ノード(頂点)とエッジ(線)で表される図(グラ
フ)
•  電⾞車車やバスの路路線図
•  ER図
•  フローチャート
18
【余談】DAG(2/2)
 有向⾮非循環グラフ(Directed  Acyclic  Graph)
l 向きが有る
l 閉路路(循環)が無い
向きが無い
循環が有る
向きが有る
循環が有る
向きが有る
循環が無い
19
Java8  Stream  API
 例例
MyOperator	
 operator	
 =	
 new	
 MyOperator();	
 
Stream<Data>	
 s0	
 =	
 初期データ;	
 
Stream<Data>	
 s1	
 =	
 s0.filter(operator::f);	
 
Stream<Data>	
 s2	
 =	
 s1.map(operator::m);	
 
List<Data>	
 out1	
 =	
 s2.collect(Collectors.toList());	
 
s0	
 
filter	
 
f	
 
map	
 
m	
 
out1
20
Scala
 例例
val	
 operator	
 =	
 new	
 MyOperator	
 
val	
 s0	
 :	
 Stream[Data]	
 =	
 初期データ	
 
val	
 s1	
 =	
 s0.filter(operator.f)	
 
val	
 s2	
 =	
 s1.map(operator.m)	
 
val	
 out1	
 =	
 s2.toSeq	
 
s0	
 
filter	
 
f	
 
map	
 
m	
 
out1
21
Scala
 MyOperatorの例例
class	
 MyOperator	
 {	
 
	
 
	
 	
 def	
 f(data:	
 Data)	
 :	
 Boolean	
 =	
 
	
 	
 	
 	
 data.getValue()	
 %	
 2	
 ==	
 0	
 
	
 
	
 	
 def	
 m(data:	
 Data)	
 :	
 Data	
 =	
 
	
 	
 	
 	
 Data(data.getValue()	
 +	
 1)	
 
}
22
Apache  Spark
 例例
val	
 sc	
 =	
 new	
 SparkContext(…)	
 
val	
 operator	
 =	
 new	
 MyOperator	
 
val	
 s0	
 :	
 RDD[Data]	
 =	
 sc.初期データ	
 
val	
 s1	
 =	
 s0.filter(operator.f)	
 
val	
 s2	
 =	
 s1.map(operator.m)	
 
s2.saveAsTextFile(”ファイル名”)	
 
※MyOperatorは通常のScalaと全く同じ	
s0	
 
filter	
 
f	
 
map	
 
m	
 
out1
23
Asakusa  Framework
 フローの例例(概要)
In<Data>	
 s0	
 =	
 入力元;	
 //ファイル	
 
Out<Data>	
 out1	
 =	
 出力先;	
 //ファイル	
 
MyOperatorFactory	
 operator	
 =	
 new	
 MyOperatorFactory();	
 
Source<Data>	
 s1	
 =	
 operator.f(s0).out;	
 
Source<Data>	
 s2	
 =	
 operator.m(s1).out;	
 
out1.add(s2);	
 
s0	
 
@Branch	
 
f	
 
@Update	
 
m	
 
out1
24
Asakusa  Framework
 MyOperatorFactoryの例例
public	
 abstract	
 class	
 MyOperator	
 {	
 
	
 	
 @Branch	
 
	
 	
 public	
 Filter	
 f(Data	
 data)	
 {	
 
	
 	
 	
 	
 return	
 (data.getValue()	
 %	
 2	
 ==	
 0)	
 ?	
 Filter.OUT	
 :	
 
Filter.MISSED;	
 
	
 	
 }	
 
	
 
	
 	
 @Update	
 
	
 	
 public	
 void	
 m(Data	
 data)	
 {	
 
	
 	
 	
 	
 data.setValue(data.getValue()	
 +	
 1);	
 
	
 	
 }	
 
}	
 
コンパイルすると
MyOperatorFactory
が生成される
25
類似点まとめ
 処理理がDAG(有向⾮非循環グラフ)で表せる
s0	
 
filter	
 
f	
 
map	
 
m	
 
out1	
 
s0	
 
@Branch	
 
f	
 
@Update	
 
m	
 
out1
26
StreamAPI・Spark・
AsakusaFWの相違点
27
相違点1:複数⼊入⼒力力
 合流流(union)
 結合(join)
 zip
s0	
 
処理	
  out1	
 
s1
28
相違点1:複数⼊入⼒力力(合流流)
種類	
 合流(union)	
Stream API
	
Stream<Data>	
 out	
 =	
 
Stream.concat(Stream.concat(s0,	
 s1),	
 s2);	
 
Spark
	
val	
 out	
 =	
 s0	
 ++	
 s1	
 ++	
 s2	
 
AsakusaFW
	
Source<Data>	
 out	
 =	
 core.confluent(s0,	
 s1,	
 s2);	
 
1,abc	
 
2,def	
 
1,foo	
 
3,bar	
 
合流	
 
1,abc	
 
2,def	
 
1,foo	
 
3,bar
29
相違点1:複数⼊入⼒力力(結合)
種類	
 結合(join)	
Stream API
	
×	
Spark
	
val	
 out	
 =	
 s0.join(s1)	
 
AsakusaFW
	
Source<Joined>	
 out	
 =	
 operator.join(s0,	
 
s1).joined;	
 //	
 @MasterJoin	
 
1,abc	
 
2,def	
 
1,foo	
 
3,bar	
 
結合	
  1,abc,foo
30
相違点1:複数⼊入⼒力力(結合)
種類	
 結合(cogroup)	
Stream API
	
×	
Spark
	
val	
 out	
 =	
 s0.cogroup(s1)	
 
AsakusaFW
	
Source<Joined>	
 out	
 =	
 operator.group(s0,	
 s1).out;	
 
//	
 @CoGroup	
 
1,abc	
 
2,def	
 
1,foo	
 
3,bar	
 
結合	
  2,def,null	
 
1,abc,foo	
 
3,null,bar
31
相違点1:複数⼊入⼒力力(zip)
種類	
 zip	
Stream API
	
×	
Spark
	
val	
 out	
 =	
 s0.zip(s1)	
 
AsakusaFW
	
×	
1,abc	
 
2,def	
 
1,foo	
 
3,bar	
 
zip	
  2,def,3,bar	
 
1,abc,1,foo
32
相違点2:複製
 同じデータを複数箇所で使⽤用(duplicate)
s0	
 
処理2	
  out2	
 
処理1	
  out1
33
相違点2:複製(duplicate)
種類	
 複数箇所使用(duplicate)	
Stream API
	
×	
Spark
	
val	
 out1	
 =	
 s0.map(operator.m1)	
 
val	
 out2	
 =	
 s0.map(operator.m2)	
 
AsakusaFW
	
Source<Data>	
 out1	
 =	
 operator.m1(s0).out;	
 
Source<Data>	
 out2	
 =	
 operator.m2(s0).out;
34
相違点3:複数出⼒力力
 分岐(branch)
s0	
 
out2	
 
分岐	
 
out1
35
相違点3:複数出⼒力力(分岐)
種類	
 分岐(branch)	
Stream API
	
×	
Spark
	
×	
AsakusaFW
	
//	
 @Branch	
 
Branch	
 result	
 =	
 operator.branch(s0);	
 
Source<Data>	
 out1	
 =	
 result.out1;	
 
Source<Data>	
 out2	
 =	
 result.out2;	
 
Source<Data>	
 out3	
 =	
 result.out3;
36
根本的な相違点:使⽤用⽬目的
種類	
 使用目的	
Stream API 処理を内部イテレーターで書ける。
(List等のコレクションはStreamに変換する必要がある)
並列Streamでマルチスレッド処理が可能。	
Scalaのコレク
ション
コレクションの処理を内部イテレーターで書ける。
並列Streamでマルチスレッド処理が可能。	
Spark (Scala本体と似たコーディングで)複数マシンで分散する処
理を書ける。(いわばマルチプロセス)	
AsakusaFW 複数マシンで分散して処理するバッチアプリケーションを書く。
(分散処理の実行基盤としてHadoopやSparkを利用する)
テスト機構あり。	
マルチスレッド・複数マシン分散 → 扱うデータ量の違い
マルチスレッド処理と言っても、数十万件といったデータでないとメリットが無い。データ量
が多いと、どうやって読み込むかという問題が出る。数千万〜億件ともなれば、データ自体
を分散し、それぞれを処理する方が効率が良い→Hadoop, Spark
37
Asakusa  Frameworkの⽬目的(1/4)
 分散処理理するバッチアプリケーションを作成す
る為のフレームワーク
– 当初は実⾏行行基盤としてHadoopを使⽤用
 ⼀一つのアプリケーションから複数のHadoopジョブを⽣生
成し、連携して実⾏行行
– 少量量データを扱う際のオーバーヘッドが⼤大きすぎたの
で、スモールジョブ実⾏行行エンジンを実装
 単体テストの実⾏行行環境としても使⽤用可能
– 最新版では実⾏行行基盤としてSparkを使⽤用可能
38
Asakusa  Frameworkの⽬目的(2/4)
 Asakusa  Frameworkで作ったアプリケーショ
ンは、コンパイルすることで実⾏行行バイナリー
(jarファイル等)を⽣生成する。
– Hadoop環境⽤用であれば、MapReduceアプリケー
ションが⽣生成される。
 Spark版実⾏行行バイナリーは、アプリケーション
をリコンパイルするだけで⽣生成可能。
 今後も有望な実⾏行行基盤が出てくれば、それもサ
ポートされる可能性がある。
– 基本的にリコンパイルだけで使える(よう考慮される
はず)
39
Asakusa  Frameworkの⽬目的(3/4)
 あるバッチの実⾏行行時間の変遷
1.  Hadoop版
l  Hadoopジョブが180個くらい
l  45〜~50分くらい
2.  Hadoop+スモールジョブ実⾏行行エンジン
l  10〜~15分くらい
3.  Spark版
l  3〜~4分くらい
40
Asakusa  Frameworkの⽬目的(3/4)
 そのバッチのDAG(の⼀一部(のイメージ))
ノード	
 
一覧	
 
下位	
 
コスト	
 
@Convert	
 
変換	
 
上位	
 
コスト	
 
コスト	
 
@CoGroup	
 
配賦率算出	
 
@Summarize	
 
操業度集計	
 
@CoGroup	
 
配賦	
 
@MJoinUpdate	
 
操業度更新	
 
操業度	
 
1バッチの中に
このフローが
25×5個くらい
@MJoinUpdate	
 
操業度更新	
 
予定	
 
操業度
41
Asakusa  Frameworkの⽬目的(4/4)
 分散処理理するバッチアプリケーションを作成す
る為のフレームワーク
– そもそも、分散処理理する必要がある=処理理対象データ
が⼤大量量(実⾏行行時間が⻑⾧長い)
 実⾏行行時間が⻑⾧長いなら、ジョブ起動にオーバーヘッドが
あっても許容できる
– 実⾏行行環境にSparkを使⽤用することで、⼩小さいデータで
も充分速くなってきた
– ⼊入⼒力力データサイズに依らず、バッチならAsakusaFW
を使えばいいんじゃない?(※個⼈人の感想です)
 ファイルの結合が必要なバッチ処理理はすごく書きやすい
42
【余談】ハードウェアとソフトウェアの関係
 ハードウェアが変われば、それに最適なソフト
ウェアは変わる
– HadoopはHDDを念念頭においた作りになっている。
 ある程度度⼤大きなサイズのブロックアクセス(HDDはラ
ンダムアクセスに弱い)
43
【余談】ハードウェアの技術動向
 ディスク
– HDD
– SSD(HDDより容量量が多くなるとか)
 CPU
– クロック数は頭打ち
– メニーコア化(100コア超)
 メモリー
– 不不揮発性メモリー(フラッシュメモリー、MRAM等)
44
【余談】メニーコア化に対する今後の予想
 Java8  Stream  API
– parallel()を使えばいい
 ソース修正が必要(今から並列列化すると、現在は不不利利)
 Apache  Spark
– executorはSpark管理理下なので、実⾏行行環境の指定を変
えるだけでいけるかも
 Asakusa  Framework
– リコンパイルするだけで対応できる、と思われる(現
在開発中)
45
まとめ
46
まとめ
 DAGを使⽤用してコーディングという点は類似
– AsakusaFWは、どの演算⼦子(@Updateとか
@MasterJoinとか(mapやfilter等のメソッド相
当))を使えばいいのかが難しいと⾔言われてきたが、
考え⽅方はStream  APIと同じ
 Stream  APIが出たことで、時代がAsakusaFWに追いつ
いてきた(違
 使⽤用⽬目的(扱うデータ量量と実⾏行行基盤)の違い
– AsakusaFWはリコンパイルだけで実⾏行行基盤を切切り替
えられる
 SparkはAsakusaFWの為に⽣生まれてきた(違
47
おわり
 アドベントカレンダー
– http://www.adventar.org/calendars/1166
– 「AsakusaFWを調べてみた」とか「試してみた」と
かでも書いてもらえると嬉しいです。
 DQ10フレンド募集中

More Related Content

What's hot (20)

PPTX
Pythonで入門するApache Spark at PyCon2016
Tatsuya Atsumi
 
PDF
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
NTT DATA OSS Professional Services
 
PDF
Introduction new features in Spark 3.0
Kazuaki Ishizaki
 
PDF
Spark 2.0 What's Next (Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Hadoop / Spark Conference Japan
 
PDF
hscj2019_ishizaki_public
Kazuaki Ishizaki
 
PPTX
Bluemixを使ったTwitter分析
Tanaka Yuichi
 
PDF
Apache Sparkについて
BrainPad Inc.
 
PPTX
Big datauniversity
Tanaka Yuichi
 
PPTX
RでKaggleの登竜門に挑戦
幹雄 小川
 
PDF
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Future Of Data Japan
 
PDF
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
 
PPTX
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Issei Nishigata
 
PPTX
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
Tanaka Yuichi
 
PPTX
PythonでDeepLearningを始めるよ
Tanaka Yuichi
 
PDF
Sparkパフォーマンス検証
BrainPad Inc.
 
PPTX
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
 
PPSX
実動するIot&hadoopから学ぶ会_資料
FwardNetwork
 
PDF
Sparkを用いたビッグデータ解析 〜 前編 〜
x1 ichi
 
PPTX
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
Tanaka Yuichi
 
PPTX
Apache Sparkを使った感情極性分析
Tanaka Yuichi
 
Pythonで入門するApache Spark at PyCon2016
Tatsuya Atsumi
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
NTT DATA OSS Professional Services
 
Introduction new features in Spark 3.0
Kazuaki Ishizaki
 
Spark 2.0 What's Next (Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Hadoop / Spark Conference Japan
 
hscj2019_ishizaki_public
Kazuaki Ishizaki
 
Bluemixを使ったTwitter分析
Tanaka Yuichi
 
Apache Sparkについて
BrainPad Inc.
 
Big datauniversity
Tanaka Yuichi
 
RでKaggleの登竜門に挑戦
幹雄 小川
 
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Future Of Data Japan
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
 
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Issei Nishigata
 
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
Tanaka Yuichi
 
PythonでDeepLearningを始めるよ
Tanaka Yuichi
 
Sparkパフォーマンス検証
BrainPad Inc.
 
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
 
実動するIot&hadoopから学ぶ会_資料
FwardNetwork
 
Sparkを用いたビッグデータ解析 〜 前編 〜
x1 ichi
 
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
Tanaka Yuichi
 
Apache Sparkを使った感情極性分析
Tanaka Yuichi
 

Viewers also liked (20)

PPTX
日本 Java ユーザーグループ JJUG CCC 2015 Fall by ソラコム 片山
SORACOM,INC
 
PPTX
Javaにおけるネイティブコード連携の各種手法の紹介
khisano
 
PDF
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
irof N
 
PDF
プログラム初心者がWebサービスをリリースして運営するまで
Tomoaki Iwasaki
 
PDF
【こっそり始める】Javaプログラマコーディングマイグレーション
yy yank
 
PDF
Real world machine learning with Java for Fumankaitori.com
Mathieu Dumoulin
 
PPT
デバッガのしくみ(JDI)を学んでみよう
fukai_yas
 
PPTX
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
sogdice
 
PDF
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Toshiaki Maki
 
PDF
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
 
PDF
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
Takakiyo Tanaka
 
PDF
Arachne Unweaved (JP)
Ikuru Kanuma
 
PPTX
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
hajime funaki
 
PPTX
Kotlin is charming; The reasons Java engineers should start Kotlin.
JustSystems Corporation
 
PDF
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Hiroyuki Ohnaka
 
PPTX
Jjug ccc
Tanaka Yuichi
 
PDF
Jjugccc2017spring-postgres-ccc_m1
Kosuke Kida
 
PDF
2017spring jjug ccc_f2
Kazuhiro Wada
 
PDF
VMの歩む道。 Dalvik、ART、そしてJava VM
yy yank
 
PDF
Java libraries you can't afford to miss
Andres Almiray
 
日本 Java ユーザーグループ JJUG CCC 2015 Fall by ソラコム 片山
SORACOM,INC
 
Javaにおけるネイティブコード連携の各種手法の紹介
khisano
 
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
irof N
 
プログラム初心者がWebサービスをリリースして運営するまで
Tomoaki Iwasaki
 
【こっそり始める】Javaプログラマコーディングマイグレーション
yy yank
 
Real world machine learning with Java for Fumankaitori.com
Mathieu Dumoulin
 
デバッガのしくみ(JDI)を学んでみよう
fukai_yas
 
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
sogdice
 
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Toshiaki Maki
 
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
 
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
Takakiyo Tanaka
 
Arachne Unweaved (JP)
Ikuru Kanuma
 
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
hajime funaki
 
Kotlin is charming; The reasons Java engineers should start Kotlin.
JustSystems Corporation
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Hiroyuki Ohnaka
 
Jjug ccc
Tanaka Yuichi
 
Jjugccc2017spring-postgres-ccc_m1
Kosuke Kida
 
2017spring jjug ccc_f2
Kazuhiro Wada
 
VMの歩む道。 Dalvik、ART、そしてJava VM
yy yank
 
Java libraries you can't afford to miss
Andres Almiray
 
Ad

Similar to Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点 (20)

PDF
Discretized Streams: Fault-Tolerant Streaming Computation at Scaleの解説
Katsunori Kanda
 
PDF
分散ストリーム処理フレームワーク Apache S4
AdvancedTechNight
 
PDF
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
Yahoo!デベロッパーネットワーク
 
PPT
Asakusa Enterprise Batch Processing Framework for Hadoop
Takashi Kambayashi
 
PDF
Scalaz-StreamによるFunctional Reactive Programming
Tomoharu ASAMI
 
PPTX
Spark Structured Streaming with Kafka
Sotaro Kimura
 
PPTX
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
Yu Ishikawa
 
PDF
Akka stream
Masaki Toyoshima
 
PPTX
Spark Summit 2014 の報告と最近の取り組みについて
Recruit Technologies
 
PDF
State of the art Stream Processing #hadoopreading
Yahoo!デベロッパーネットワーク
 
PDF
Spark SQL - The internal -
NTT DATA OSS Professional Services
 
PPTX
鹿駆動勉強会 青江発表資料
Takashi Aoe
 
PPTX
3月度定例会プレゼン資料 張田浩明 最新
hharita
 
PDF
Scala2.8への移行
guest5f4320
 
PDF
Scala2.8への移行
Takeda Hiroyuki
 
PDF
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
Insight Technology, Inc.
 
PDF
OSC2012 Tokyo/Spring - Hadoop入門
Shinichi YAMASHITA
 
PDF
Survey of Apache Spark
Mila, Université de Montréal
 
PDF
Stormの注目の新機能TridentAPI
AdvancedTechNight
 
Discretized Streams: Fault-Tolerant Streaming Computation at Scaleの解説
Katsunori Kanda
 
分散ストリーム処理フレームワーク Apache S4
AdvancedTechNight
 
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
Yahoo!デベロッパーネットワーク
 
Asakusa Enterprise Batch Processing Framework for Hadoop
Takashi Kambayashi
 
Scalaz-StreamによるFunctional Reactive Programming
Tomoharu ASAMI
 
Spark Structured Streaming with Kafka
Sotaro Kimura
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
Yu Ishikawa
 
Akka stream
Masaki Toyoshima
 
Spark Summit 2014 の報告と最近の取り組みについて
Recruit Technologies
 
State of the art Stream Processing #hadoopreading
Yahoo!デベロッパーネットワーク
 
Spark SQL - The internal -
NTT DATA OSS Professional Services
 
鹿駆動勉強会 青江発表資料
Takashi Aoe
 
3月度定例会プレゼン資料 張田浩明 最新
hharita
 
Scala2.8への移行
guest5f4320
 
Scala2.8への移行
Takeda Hiroyuki
 
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
Insight Technology, Inc.
 
OSC2012 Tokyo/Spring - Hadoop入門
Shinichi YAMASHITA
 
Survey of Apache Spark
Mila, Université de Montréal
 
Stormの注目の新機能TridentAPI
AdvancedTechNight
 
Ad

Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点