SlideShare a Scribd company logo
1 of 47
Download to read offline
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

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

What's hot (20)

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

Viewers also liked

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

Viewers also liked (20)

日本 Java ユーザーグループ JJUG CCC 2015 Fall by ソラコム 片山
日本 Java ユーザーグループ JJUG CCC 2015 Fall  by ソラコム 片山 日本 Java ユーザーグループ JJUG CCC 2015 Fall  by ソラコム 片山
日本 Java ユーザーグループ JJUG CCC 2015 Fall by ソラコム 片山
 
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介
 
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
 
プログラム初心者がWebサービスをリリースして運営するまで
プログラム初心者がWebサービスをリリースして運営するまでプログラム初心者がWebサービスをリリースして運営するまで
プログラム初心者がWebサービスをリリースして運営するまで
 
【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション
 
Real world machine learning with Java for Fumankaitori.com
Real world machine learning with Java for Fumankaitori.comReal world machine learning with Java for Fumankaitori.com
Real world machine learning with Java for Fumankaitori.com
 
デバッガのしくみ(JDI)を学んでみよう
デバッガのしくみ(JDI)を学んでみようデバッガのしくみ(JDI)を学んでみよう
デバッガのしくみ(JDI)を学んでみよう
 
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
 
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
 
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 FallJava EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
 
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景にマイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
 
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
 
Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafGetting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with Thymeleaf
 
Arachne Unweaved (JP)
Arachne Unweaved (JP)Arachne Unweaved (JP)
Arachne Unweaved (JP)
 
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
U-NEXT学生インターン、過激なJavaの学び方と過激な要求U-NEXT学生インターン、過激なJavaの学び方と過激な要求
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
 
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
 
Jjug ccc
Jjug cccJjug ccc
Jjug ccc
 
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1
 
2017spring jjug ccc_f2
2017spring jjug ccc_f22017spring jjug ccc_f2
2017spring jjug ccc_f2
 

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

インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】Eisaku Terao
 
Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析npsg
 
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...NTT DATA Technology & Innovation
 
Spark Streaming Snippets
Spark Streaming SnippetsSpark Streaming Snippets
Spark Streaming SnippetsKoji Agawa
 
Connect S3 with Kafka using Akka Streams
Connect S3 with Kafka using Akka StreamsConnect S3 with Kafka using Akka Streams
Connect S3 with Kafka using Akka StreamsSeiya Mizuno
 
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksqlMitsutoshi Kiuchi
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
Data processing at spotify using scio
Data processing at spotify using scioData processing at spotify using scio
Data processing at spotify using scioJulien Tournay
 
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...NTT DATA Technology & Innovation
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413Funato Takashi
 
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践Shu Sugimoto
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia鉄次 尾形
 
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...NTT DATA Technology & Innovation
 
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018ssuser864c6a
 
並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.jsYoshiiro Ueno
 
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料Recruit Technologies
 

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

インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
 
Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析
 
Survey of Apache Spark
Survey of Apache SparkSurvey of Apache Spark
Survey of Apache Spark
 
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
Spark Streaming Snippets
Spark Streaming SnippetsSpark Streaming Snippets
Spark Streaming Snippets
 
ScalaCL in ScalaKaigi
ScalaCL in ScalaKaigiScalaCL in ScalaKaigi
ScalaCL in ScalaKaigi
 
Connect S3 with Kafka using Akka Streams
Connect S3 with Kafka using Akka StreamsConnect S3 with Kafka using Akka Streams
Connect S3 with Kafka using Akka Streams
 
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
Trait in scala
Trait in scalaTrait in scala
Trait in scala
 
Data processing at spotify using scio
Data processing at spotify using scioData processing at spotify using scio
Data processing at spotify using scio
 
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413
 
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia
 
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
 
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018
AlaxalA's presentation at Ansible Night in Osaka on 28th Nov. 2018
 
並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js
 
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
 

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