Slide 1

Slide 1 text

ç “Running Apache Samza on Kubernetes” Recap : KubeCon2019@NA Kubernetes Meetup Tokyo #26@Yahoo @yosshi_

Slide 2

Slide 2 text

● 吉村 翔太 ● NTTコミュニケーションズ所属 ● データサイエンスチーム ● インフラエンジニア/データエンジニアリング ● Kurbernetes 、Prometheus  etc ● 趣味:ボードゲーム ● コミュニティ活動 “Cloud Native Developers JP” @yosshi_ 自己紹介

Slide 3

Slide 3 text

簡単なsamzaの話

Slide 4

Slide 4 text

取り上げるセッション 参考< https://sched.co/Uacc >

Slide 5

Slide 5 text

• 簡単なsamzaの話 • 最近のHadoopの動向 • もう少し、詳しくsamzaの話 本日の目次

Slide 6

Slide 6 text

About Apache Samza 2018年11月にApache Samza 1.0.0をリリース

Slide 7

Slide 7 text

Samza on Kubernetes • YARN(Hadoopのリソース管理)に加えて、 Kubernetesにも対応

Slide 8

Slide 8 text

Kubernetes上で動く他のストリーミング処理 • Spark on Kubernetes • Flink on Kubernetes

Slide 9

Slide 9 text

参考:SparkとFlinkの資料 • Spark – ドキュメント • https://github.com/GoogleCloudPlatform/spark-on-k8s-operator – KubeCon2019@NAのセッション • Kubernetizing Big Data and ML Workloads at Uber - Mayank Bansal & Min Cai, Uber https://sched.co/Uaad • Flink – ドキュメント • https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/kubernetes.html – KubeCon2019@NAのセッション • Managing Apache Flink on Kubernetes - FlinkK8sOperator - Anand Swaminathan, Lyft https://sched.co/UabA

Slide 10

Slide 10 text

最近のHadoopの動向

Slide 11

Slide 11 text

Hadoopの動向(2018年9月まで) • オンプレでHadoopを使う場合は、 だいたい以下のディストリビューションのどれかを使う ディストリビューションを使わないことも出来はするが・・・厳しい

Slide 12

Slide 12 text

Hadoopの動向(2018年10月以降の世界) • 2018年10月にClouderaとHortonworksの合併が発表 • 2019年1月合併完了

Slide 13

Slide 13 text

Unity1.0 Unity2.0 ディストリビューションの統合 合併後3年間は保守する方向らしい(2022年?) 統合していくらしい 2021年くらいに全ての機能が統合?

Slide 14

Slide 14 text

Cloudera Data Platform(CDP) • 現在、AWSでサポート、 AzureおよびGCPでも近々にサポートが開始される予定 “Unity1.0”の実態? AWS版のアーキテクチャはEKS(Elastic Kubernetes Servic)とS3ベース オンプレのとき Kubernetesは どうするんだろ?

Slide 15

Slide 15 text

参考:データ分析組織に必要なスキルセット インフラ 業務知識 データ サイエンス データ エンジニアリング IPAの”ITSS+”とかが参考になる 統計 R Python SQL Hadoop Spark

Slide 16

Slide 16 text

Kubernetes前提のデータ分析の組織 Kuberntesのクラスタ Hadoopのクラスタ データエンジニア データサイエンス 業務 データエンジニア Hadoopのクラスタ Kuberntesのクラスタ 業務 データサイエンス 理想 現実 別々の チーム 同じ人が やる

Slide 17

Slide 17 text

CDP 今後のオンプレでのHadoop環境の選択 今、使ってる人たち 保守期限まで粘る 信じて待つ 第3の道 ex) 自分たちで頑張る

Slide 18

Slide 18 text

今後のオンプレでのデータパイプライン • ディストリビューション買っても、k8s前提なら結局 バッチ/ストリーミング処理 Pub/Sub 永続化 Kafka Kubernetes ストレージ or DB 2,3年くらい待つくらいなら自分たちで検証しても

Slide 19

Slide 19 text

もう少し、詳しくsamzaの話

Slide 20

Slide 20 text

About Apache Samza (2回目) • Samza開発者のひとりであるLinkedInのChris Riccominiの話 – 「KafkaがHDFSなら、SamzaはMapReduceにあたる存在」 • Samzaのネーミング – フランツ・カフカ(Franz Kafka)の小説の「変身」の主人公である グレゴール・ザムザ(Gregor Samsa)

Slide 21

Slide 21 text

About Apache Kafka(1/2) • Linkedinで開発され、2011年にOSS化 • 大事な役割 – Message queue – Message hub Kafkaのない世界 Kafkaのある世界 参考< https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying/ >

Slide 22

Slide 22 text

About Apache Kafka(2/2) • 大事な機能 – Partition – Offset 参考< https://kafka.apache.org/intro > Offset Partition

Slide 23

Slide 23 text

Typical Use Cases of Samza

Slide 24

Slide 24 text

Samza Features 重複は許容

Slide 25

Slide 25 text

Samza Concept Overview • Samza processes streams. A stream is composed of immutable messages of a similar type or category. In Kafka a stream is a topic.

Slide 26

Slide 26 text

Advanced Concept Overview (1/2) • Partition: each stream is broken into one or more partitions, which is an ordered, replayable sequence of records. • Task: the unit of parallelism of the job, just as the partition is to the stream. コンテナ数を増やすとスケール (ただし多重度の限界はprtition数に依存)

Slide 27

Slide 27 text

Advanced Concept Overview (2/2) • Job Coordinator – manage the assignment of tasks across the individual containers – monitor the liveness of individual containers – redistribute the tasks among the remaining ones during a failure

Slide 28

Slide 28 text

Fault tolerance どのoffsetまで処理したかを記録しているので、故障時は記録を元に再開 ただし、処理は済んだが記録する前に故障した場合、復旧時に処理が重複する 参考< hhttps://samza.apache.org/learn/documentation/latest/architecture/architecture-overview.html >

Slide 29

Slide 29 text

Samza & Kubernetes: Working Together

Slide 30

Slide 30 text

Workflow

Slide 31

Slide 31 text

Proposed Changes • The Samza Operator, similar to the Samza AM in YARN, is the control hub for Samza applications running on Kubernetes. It is responsible for requesting Pods from Kubernetes and coordinating work assignment across Pods. • Below graph describes the lifecycle of a Samza application running on Kubernetes. 参考

Slide 32

Slide 32 text

Overview - Samza on Kubernetes

Slide 33

Slide 33 text

Node – Zoom In

Slide 34

Slide 34 text

Samza on YARN • Samza leverages YARN for scheduling, resource-management, and deployment.

Slide 35

Slide 35 text

Kubernetes vs Apache Yarn k8s版はなし

Slide 36

Slide 36 text

Samzaの今後 • Adding support for other languages, like Python • Hot-standby containers to support applications with strict downtime requirements • Making it easy to auto-scale and auto-tune Samza applications • Supporting machine learning related use cases • Enabling end-to-end exactly once processing 参考< https://engineering.linkedin.com/blog/2018/11/samza-1-0--stream-processing-at-massive-scale>