Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #23 #hadoopreading

>100 Views

July 06, 17

スライド概要

2017.07.05 Hadoopソースコードリーディング 第23回
「Apache BigData + DataWorks Summit報告会」
https://connpass.com/event/60047/

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

DataWorks Summit 2017 San Jose ストリーム処理関連の報告 Hadoopソースコードリーディング 第23回 2017年7月5日 ヤフー株式会社 小舘 航 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

2.

自己紹介 • • • • 2 小舘 航(こだて わたる) @hbwandeow 2012年入社 社内ストリーム処理プラットフォームの開発・運用 ストリーム処理アプリケーションの開発 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

3.

アジェンダ 3 1. 2. DataWorks Summit概要 セッション紹介 1. Realizing the promise of portable data processing with Apache Beam / Google 2. Next Generation Execution Engine for Apache Storm / Hortonworks 3. まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

4.

アジェンダ 4 1. 2. DataWorks Summit概要 セッション紹介 1. Realizing the promise of portable data processing with Apache Beam / Google 2. Next Generation Execution Engine for Apache Storm / Hortonworks 3. まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

5.

DataWorks Summit 2017 San Jose • • • 5 日時: 2017年6月13日-15日 場所: San Jose McEnery Convention Center Hadoop Summit→DataWorks Summitに名称を変更 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

6.

イベント詳細 6 • • • • Keynotes+170以上のBreakout sessions 発表スライド: https://dataworkssummit.com/san-jose-2017/agenda/ Training / Crash Course Meetup / Bird of a Feather • 主にストリーム処理関連のセッションを聴講 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

7.

ストリーム処理とは • • • 7 無限に流れてくるデータを処理し続ける バッチ処理と比較して速さに価値がある ユースケース • リアルタイム集計、異常検知 例) クリック率急増の検知、Abuserの検知 • 機械学習 例) 商品のレコメンデーション、広告のクリック率予測 • ETL 例) 話題のハッシュタグトップ10 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

8.

全体を通しての感想 • • • 8 世界の企業では、ストリーム処理はデータ分析プラットフォームの中で当たり 前に使われている。年々、プロダクションでの事例も増えてきており、扱う データ量やクラスタの規模も大きくなっている 主に使われていたストリーム処理実行エンジンはStorm, Spark Streaming, Flink 求められているストリーム処理プラットフォームの特徴 • 低レイテンシ • 容易な分析インターフェース • データの完全性 • バッチとの統合 • サイエンス Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

9.

アジェンダ 9 1. 2. DataWorks Summit概要 セッション紹介 1. Realizing the promise of portable data processing with Apache Beam / Google 2. Next Generation Execution Engine for Apache Storm / Hortonworks 3. まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

10.

Apache Beam • • • • 10 Realizing the promise of portable data processing with Apache Beam / Google バッチ処理とストリーム処理を任意のエンジンで実行でき るモデルを提供 2017/05/17 First stable release 特徴 1. Unified 2. Portable 3. Extensible Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

11.

1. Unified: Beamモデル • バッチ処理とストリーム処理を同様のモデルで定義 パイプラインを構築する際に考える必要がある質問 What results are calculated? Where in event time are results calculated? When in processing time are results materialized? 4. How do refinements of results relate? • 1. 2. 3. 11 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

12.

Processing time vs Event time ・Processing time システムが処理した時間 ・Event time イベントが発生した時間 ・必ずしもイベントの発生順にシステムが処理するわけではない 12 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

13.

What is being computed? 変換処理は何か ・ParDo ・GroupByKey ・Combine ・Flatten, Partition … 13 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

14.

Where in event time? どこをWindowとするか ・Global windows ・Fixed windows ・Sliding windows ・Session windows … 14 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

15.

When in processing time? いつWindow処理を終了するか ・Watermark Windowの全てのデータが 処理されたとみなす時間 ・Trigger Windowのデータを出力する タイミング 15 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

16.

How do refinement relate? どのようにWindowの結果を 反映させるか ・Discarding ・Accumulating ・Accumulating & Retracting 16 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

17.

Beamモデルまとめ 変換処理は何か 17 どこをWindow とするか Co p yrig ht © 2 0 1 7 いつWindow処理を どのようにWindowの 終了するか 結果を反映させるか Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

18.

具体的な例1 • 有限の入力データに対するワードカウント(Classic Batch) • What? 単語のキーに対する整数の合計 • Where? 単一のグローバルウィンドウ • When? 有限な入力データセットが処理された後に1回 • How? ウィンドウに対して1度出力されるので関係なし 18 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

19.

具体的な例2 • 有限の入力データに対する1時間毎のワードカウント (Windowed Batch) • What? 単語のキーに対する整数の合計 • Where? 1時間のEvent timeの固定ウィンドウ • When? 有限な入力データセットが処理された後に1回 • How? ウィンドウに対して1度出力されるので関係なし 19 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

20.

具体的な例3 • 20 無限の入力データに対する1時間毎のワードカウント (Streaming + Accumulation) • What? 単語のキーに対する整数の合計 • Where? 1時間のEvent timeの固定ウィンドウ • When? • Early: 5分毎のProcessing time • On-time: Watermarkがウィンドウの最後を通過したとき • Late: 1分毎のProcessing time • Final: Watermarkがウィンドウの最後を通過してから2時間後 • How? 前の値に新しい値を累積 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

21.

2. Portable • 同じソースコードを使って異なるRunnerで実行可能 • • 21 Co p yrig ht © 2 0 1 7 ユーザが各言語SDKを選 択可能 Runnerを選択可能 Runnerによって実装可能 な処理が異なる Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

22.

How do you build an abstraction layer? • 22 各Runnerの共通部分だけでなく、Runnerに合った処理に 変換できるような役割を目指している Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

23.

3. Extensible 23 • Read/Writeするカスタムソースを定義できる • SDKs • Runner Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

24.

I/O Transforms 24 • Built-in I/O • In-Progress I/O Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

25.

Beamプログラムの実行 1. 2. 3. 4. 5. 25 Pipelineオブジェクトの作成と実行オプションの選択 Source APIを使ってPCollectionを初期化 PCollectionにTransformを適用 Sink APIを使って、変換処理されたPCollectionを出力 Pipeline RunnerでPipelineを実行 Sink Source Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

26.

アジェンダ 26 1. 2. 3. DataWorks Summit概要 ストリーム処理 セッション紹介 1. Realizing the promise of portable data processing with Apache Beam / Google 2. Next Generation Execution Engine for Apache Storm / Hortonworks 4. まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

27.

Apache Storm • • • • 27 Next Generation Execution Engine for Apache Storm / Hortonworks 2011年にTwitter社が公開 古くからあるストリーム処理実行エンジン 現在productionで広く利用されている Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

28.

Storm 1.X • • • • • • • • • 28 Improved Performance(16x faster throughput) Pacemaker Distributed Cache API HA Nimbus Window API Backpressure Resource Aware Scheduler Storm Usability Improvements … Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

29.

Storm 2.0 • • • • • • • 29 High performance execution engine All Java code(transition away from Clojure) Improved Backpressure, Metrics subsystems Beam integration, Bounded spouts Scheduling Hints, Elasticity Dynamic Topology Updates … Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

30.

Performance in 2.0 • • 30 メッセージングアーキテクチャの変更(STORM-2306) • ハイパフォーマンスな内部Queueを選択 • スレッド内の過剰なQueue(主にExecutor内のSend Queue)を削除 →レイテンシが116xに向上 Executor, Threadモデルの変更(STORM-2307) • 同じexecutor threadに異なるタイプのタスクを実行す ることが可能。タスク間通信を最適化 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

31.

Scheduling & Elasticity(STORM-2309) • • • • 31 Worker内部やWorkerをまたがるタスクの実行を最適化した い Parallelism hints • Worker毎、ホスト毎、クラスタ全体で並列数を設定 LocalityControl • タスクの配置場所を制御 グルーピングの引数で分散を制御 • shuffle(threadLocal) • fieldsGrouping(nodeLocal) Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

32.

Back-Pressure Handling(STORM-2310) • • • • 32 後続で処理が詰まらないようにイベントの流量を制御する機構 バージョン1.0から搭載された機能 データを破棄する • 古いイベントを破棄、新しいイベントを破棄、データソースのイ ベントを破棄。これらはアプリケーションの特性に依存 スケールアウトする • 処理が追いついていない場合に、自動でプロセスやスレッド、マ シンを増やす 流量を調整する • 全てのコンポーネントではなく、処理が遅いコンポーネントのみ 前段に伝える • 受け取るBoltのQueueが詰まっていたら前段からリトライ処理 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

33.

アジェンダ 33 1. 2. DataWorks Summit概要 セッション紹介 1. Realizing the promise of portable data processing with Apache Beam / Google 2. Next Generation Execution Engine for Apache Storm / Hortonworks 3. まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .

34.

まとめ • • • 34 ストリーム処理の一般化、利用規模の拡大。低レイテンシ +αなプラットフォームが求められる Apache Beamはバッチ処理とストリーム処理を統合したモ デルを提供。開発者に合ったSDKや実行エンジンを選択 し、処理パイプラインをBeamモデルで定義する Storm2.0からJavaコードに置き換え。実行プロセスの内部 アーキテクチャが変更され、パフォーマンスが向上 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .