「アプリケーションエンジニアのためのApache Spark入門」出版記念セミナーに行ってきた
に行ってきた。以下はメモ
Apache Spark入門書籍の紹介
- 理論よりも使い方に重きを置いた入門書
- サンプルのプログラミング言語はPython
- データ分析基盤に使われるOSS紹介
- データ収集はfluentd, kafka
- データ蓄積はhdfs, cassandra
- ストリーム処理、簡易な集計分析はSpark structured streaming
- バッチ処理はSpark SQL
- データ分析はSpark MLlib, Jupyter
- Sparkが注目されている理由はデータ分析プラットフォームの主要な機能があるため
Fluentd, Kafkaの紹介
- 残念ながらスピーカーが私用のため、欠席
Spark Streamingについて
- ストリーム処理はデータが無限
- バッチ処理はデータが有限
- ただ、Spark Streamingはマイクロバッチなので、データを有限として扱う
- Spark2.3.0から継続実行方式が可能になる
- ストリーム処理で発生する問題
- データが発生した順に到着しない。out of order. ネットワーク遅延やサーバ間の時刻ズレなどが原因
- データのグルーピングの概念
- タンブリングウィンドウは固定長で区切る方式
- スライディングウィンドウは固定長だが、スライド幅が異なる方式
- セッションウィンドウは特定キー、特定時間内のデータを同一ウィンドウにまとめて処理する方式
- 実際に到着が遅れて困る例。データが大幅に遅れると、どこまで、その遅れを待てばいいのか検討が必要
- 対応方法としては、データ発生時刻とデータ処理時間を分けて管理する。加えてDBへの投入時間を管理する場合もある
- どこまで処理したかの管理はwater markで管理
- データ発生時刻が一定時間以上古い場合は除外する
- 出力する値や集計方式として、処理完了したもの、追加部分のみ、更新部分のみを選択可能
- これらのサンプルプログラムが書籍に記載されている
データの蓄積
- Spark SQLとCassandraの紹介
- Spark処理結果を出力先として、Cassandraがオススメ
データ分析について
- データ分析プロセスCRISP-DM
- 他にKDD,SEMMAがある
- 資料は後日、公開