hadoop summit 2016 san jose ストリーム処理関連の報告 #streamctjp

26
2016年7月22日 1 ヤフー株式会社 D&S データプラットフォーム本部 森谷 大輔 Hadoop Summit 2016 @San Jose ストリーム処理関連の報告

Upload: yahoo

Post on 09-Jan-2017

1.279 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

2016年7月22日

1

ヤフー株式会社 D&S データプラットフォーム本部 森谷 大輔

Hadoop Summit 2016 @San Jose

ストリーム処理関連の報告

Page 2: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

自己紹介

• 氏名• 森谷 大輔

• 業務• 社内ストリーム処理PFの構築

• ストリームなアプリケーションの開発

• ストリーム周りで使う• Kafka, Storm,

Cassandra, Elasticsearch

2

Page 3: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

アジェンダに入る前に

Page 4: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

ストリーム処理復習

• バッチ処理:データをためて、まとめて、一気に処理• 処理に終わりがある

• 高スループット、データが生まれてから結果が出るまでの時間遅

• ストリーム処理:生まれ続けるデータを継続的に逐次処理• 処理に終わりがない

• 低スループット、データが生まれてから結果が出るまでの時間速

4

Page 5: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

なんでストリーム処理?

•速い。以上。 ※個人の見解です

• ストリーム処理をしたくなる例• 不意にものすごく人気が出たTV番組をユーザに通知できたのが番組が終わった後だった

• ログから故障しそうなサーバを予見、通知されたがもう既に故障している

• ユーザがこの商品に興味があるのは恐らくここ数分だけだ

• Webページのこのモジュールのクリック率、急激に悪くなってたからすぐ差し替えたかった

5

Page 6: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

アジェンダ

• イベント概要

• Hadoop Summitにおけるストリーム処理

• セッション紹介• ① The Future of Apache Storm

• ② Ingest and Stream Processing - What Will You Choose?

• まとめ

6

Page 7: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

アジェンダ

• イベント概要

• Hadoop Summitにおけるストリーム処理

• セッション紹介• ① The Future of Apache Storm

• ② Ingest and Stream Processing - What Will You Choose?

• まとめ

7

Page 8: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

Hadoop Summit 2016 @San Jose

• 日時: 2016/6/28 – 30

• 場所: San Jose McEneryConvention Center

• 参加者数: 4000人+

• セッション数: 170+

• ホスト: Hortonworks,Yahoo! Inc.

8

Page 9: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

• 午前キーノート午後セッションが3日間

• Hadoop 10周年

• 2016/10月 Hadoop Summit Tokyo

9

Page 10: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

アジェンダ

• イベント概要

• Hadoop Summitにおけるストリーム処理

• セッション紹介• ① The Future of Apache Storm

• ② Ingest and Stream Processing - What Will You Choose?

• まとめ

10

Page 11: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

Hadoop Summitにおけるストリーム処理

• ストリーム関連のセッションは想像以上に多かった• 実績話、チューニング、deep dive• keynoteではメインテーマの1つとして”Data at Rest”と”Data in Motion”の扱いについて言及

11

確認した171セッション中 abstract で言及しているセッション数

Kafka 24

Storm 21

Flink 8

Spark Streaming 5

Samza 2

Beam 2

Apex 2

↑を全てOR 44

参考

Spark 47

Hive 22

NiFi 21

HBase 18

全体の4分の1くらい

Page 12: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

肌感• Kafka + Storm は現状のプロダクション実績においてほとんどデファクトスタンダードのよ

うだ

• Storm、最近旗色悪そうな気がしていたが予想以上に使われている

• Spark StreamingはStormほどではないが使われている• ただしlatencyの問題がある、latency要件が高いユーザはStormに戻る例も

• 分散キューとしては聞いた中ではKafka以外の名前は聞かなかった

• FlinkやApexといったところは注目されている、がまだ実績は多くない

12

Page 13: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

アジェンダ

• イベント概要

• Hadoop Summitにおけるストリーム処理

• セッション紹介• ① The Future of Apache Storm

• ② Ingest and Stream Processing - What Will You Choose?

• まとめ

13

Page 14: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

The Future of Apache Storm

• P. Taylor Goetz @Hortonworks• StormのPMC chair、他ApexやKylinのPMC

• Stormの過去と今年4月にリリースした1.0と今後の話

• 0.10.x まで

• 1.0の新機能

• 2.xに向けて

• よもやま話

14

Page 15: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

0.10.xまで• Storm 0.9.x

• StormがApacheのトップレベルプロジェクトに

• workerの内部通信が0mqからNettyに

• 連携系に拡張・改良(Kafka, HDFS, HBase)

• dependencyのコンフリクト防止施策

• Storm 0.10.x• セキュリティ追加、マルチテナントのための機能追加

• ローリングアップグレード可能に

• Partial Key Groupings

• Flux(便利トポロジデプロイツール)

• 連携系拡張(Hive, Redis, JDBC)

15

Page 16: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

1.0の新機能• 2016年4月リリース

• Pacemaker• ZooKeeperに流していたハートビートの置き換え

• スケールのボトルネックだったがこれによって2, 3千ノードのスケールが可能に

• Distributed Cache API• トポロジ間でファイル共有できる仕組み(設定ファイルや辞書ファイル等)

• トポロジと一緒にデプロイする方法では、ファイルが小さいと問題にならなかったが巨大だとデプロイに時間がかかる問題を解消

• ファイルはコマンドラインからアップデートでき、KBから数GBのサイズ、圧縮をサポート

• High Availability Nimbus

• Native Streaming Windows• Window処理がやりやすくなるAPI

16

Page 17: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

1.0の新機能• State Management

• ステートフルなboltをサポート

• checkpointが定期的に更新されて、bolt再開時はそこからstateを復帰

• インメモリのstate実装かRedisが使える

• Automatic Back Pressure• バッファサイズの貯まり具合でSpoutのスピードを絞ったり戻したりする

• High/Low Watermarkによって指定

• Resource Aware Scheduler• トポロジ毎に必要リソース(メモリ/CPU)を指定して効率的にタスクを割り振れるようになるスケジューラ

• クラスタ内のサーバ性能が統一じゃない場合にも有効

• Dynamic Log Levels、お手軽タプルサンプリング、Distributed Log Search...

• 最大スループット向上16倍、60%レイテンシ低減

17

Page 18: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

2.xに向けて• Storm 1.1.0

• メトリクスAPIの改良

• ユーザ定義のメトリクス

• Storm UIで見れるメトリクスを増やす

• メトリクスのAmbari連携を強化

• Storm 2.x• Clojure to Java

• Streaming SQL

18

Page 19: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

よもやま話• パフォーマンスはユースケースによって全く異なる

• 外部のベンチマークを鵜呑みにしてはならない、自分でやるのが一番

• Heron vs Storm

• 当時Heronが解決した課題は現在ではStormでもほぼ解決してしまった

• 機能面でもパフォーマンスでもStormに分がある

• Q. Stormは死ぬ?

• A. ライバルがそう言ってるだけ

• 数百のプロダクション実績とデベロッパコミュニティの活発さが本当の答えだ

19

Page 20: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

アジェンダ

• イベント概要

• Hadoop Summitにおけるストリーム処理

• セッション紹介• ① The Future of Apache Storm

• ② Ingest and Stream Processing - What Will You Choose?

• まとめ

20

Page 21: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

Ingest and Stream Processing– What Will You Choose?

• Ted Malaska @Cloudera

• ストリーム処理のシステムを構築する上で各コンポーネントのセマンティクスや、実装には何を選ぶべきかの指針を与える話

• 1個前の話とかなり違うことを言っている

21

Page 22: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

ストリームの構成とセマンティクス

• セマンティクス?

22

At Most Once 重複はしないけど損失はするかも

At Least Once 損失はしないけど重複はするかも

Exactly Once 損失も重複もしない

Producer Kafka Engine Destination

At Least Once

At Least OnceOrdered

Partitioned モノによる モノによる

Page 23: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

Destinations

23

モノ セマンティクス 備考 向いているIngestion

ファイルシステム(HDFS等)

Exactly Once可 scanに良い Flume, Kafka Connect

Solr Exactly Once可 search queryに良い Flume, Any Streaming Engine

NoSQL(HBase等) Exactly Once可 getやputするのに良い Flume, Any Streaming Engine

Kudu Exactly Once可 get, put, scanに良い Flume, Kafka Connect,Any Streaming Engine

Page 24: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

Streaming Engines

24

モノ セマンティクス 特徴

Consumer: Flume,KafkaConnect

- ・シンプルだがtransformationはできない・低レイテンシ・高スループット

Storm At Least Once ・低レイテンシ・低スループット・「直に歴史の1ページとなるだろう」

Spark Streaming Exactly Once可 ・最近すごい勢い・(Stormよりは)高レイテンシ・高スループット・SQL, MlLib・デバッグやユニットテストがしやすい

Flink Exactly Once可 ・Sparkに似ている・(Spark Streamingよりは)低レイテンシ・実績少

Kafka Streams - ・若い(0歳2ヶ月)・低レイテンシ・高スループット

Page 25: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

アジェンダ

• イベント概要

• Hadoop Summitにおけるストリーム処理

• セッション紹介• ① The Future of Apache Storm

• ② Ingest and Stream Processing - What Will You Choose?

• まとめ

25

Page 26: Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp

まとめ

• Hadoop Summitにおけるストリーム処理についての肌感• 注目されている

• Stormのプロダクション実績の多さ

• FlinkやApexはこれから

• Stormの未来• 1.0の機能群が強い

• ポジショントークに注意、試してみるのが一番かも

• ストリーム処理システム構成のヒント• 要件に合わせたStream EngineやDestination選択を

26