Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Apache Kafkaでの大量データ処理がKubenetesで簡単にできて嬉しかった話
Search
株式会社マイクロアド(システム開発部)
PRO
November 21, 2023
Programming
26
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Apache Kafkaでの大量データ処理がKubenetesで簡単にできて嬉しかった話
株式会社マイクロアド(システム開発部)
PRO
November 21, 2023
More Decks by 株式会社マイクロアド(システム開発部)
See All by 株式会社マイクロアド(システム開発部)
Rancherで実現した、クラウドに頼らない低コストな次世 代データレイク
microaddevelopers
PRO
0
55
オンプレ環境でIcebergを運用して分かったテーブルメンテナンスの重要性
microaddevelopers
PRO
0
50
徹底比較!LonghornとCephのアーキテクチャ&パフォーマンス
microaddevelopers
PRO
0
380
マイクロアドでの Hive → Iceberg 移行事例紹介
microaddevelopers
PRO
1
150
Rancher × Hashicorp Vault で 実現する秘密情報管理
microaddevelopers
PRO
1
86
大規模システムを支える実践的インフラ基盤の開発と運用
microaddevelopers
PRO
0
110
マイクロアドのData LakehouseとIcebergテーブルの最適化について
microaddevelopers
PRO
1
55
広告配信システムにおけるデータ基盤移行の事例紹介
microaddevelopers
PRO
0
36
3rd Party Cookie 規制後の広告配信技術
microaddevelopers
PRO
0
28
Other Decks in Programming
See All in Programming
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
150
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.2k
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
580
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
350
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
130
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
気持ちぃ〜角丸 Squircle
ryu1013
0
210
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
350
phperだってパンチカードでコーディングしたい
o0h
PRO
0
260
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
1
2.3k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Code Review Best Practice
trishagee
74
20k
Color Theory Basics | Prateek | Gurzu
gurzu
1
480
Technical Leadership for Architectural Decision Making
baasie
3
600
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
700
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
530
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
620
Code Reviewing Like a Champion
maltzj
529
40k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
400
Transcript
Apache Kafkaでの大量データ 処理がKubenetesで簡単にでき て嬉しかった話 Fluentd,Spark Streaming 株式会社マイクロアド 大澤 昂太
大澤 昂太 サーバサイドエンジニアをしています。 分散システム関連の開発が多いです。 K8sは何回か勉強したのですがあまり理 解できなかったです。 Dockerはよく使います 自己紹介など 株式会社マイクロアド インターネット広告の会社です。
設計に起因する苦しい時代を経験して いるので設計へのこだわりが強いで す。 関数型言語のScalaやサーバサイド KotlinなどJVMの活用が多いです。
広告業界とデータセンターについて • 広告業界では自社で取り扱ってないサイトのトラフィックを取り扱う • このトラフィックは一日TB単位になることがある • 休みなく24時間動き続ける数千台単位のサーバが欲しくなるのでオンプレの データセンターのほうがコスパが良い機能が多い(と思われる) クラウドもよく活用します 収集
サイト サイト サイト サイト サイト
Apache Kafkaの活用について • Kafkaとはリアルタイムキューでリアルタイムにログを流したりできるデー タベースに近いもの • 一般的なPub/Subとの違いとしてクラスタリングができ、大規模なデータで も転送できる • 弊社ではトラフィックを解析する機能が多いのでApache
Kafkaを多数活用し ている Apache Kafka Apache Kafka アプリ アプリ 後続 後続 後続 後続が大量に 増えてもス ケールでき る!
Spark Streamingの活用と問題について • 弊社ではApache Kafkaのデータ処理をする際には主にSparkストリーミング を活用している • 問題点として軽い機能でもそれなりの規模の開発が必要 • (弊社Hadoopの問題で)オーバーコミットが安定せずCPUコアの消費量が多
い • Hadoopクラスタが老朽化していてどうにかしたい Apache Kafka Spark Streaming Apache Kafka Spark Streaming
クラスタ Fluentdの活用と弱点 • Fluentdはストリーム処理を行うことができるミドルウェア • 設定ファイルを少し書くだけでデータ転送等を行うことができる • 弊社でもよく使われるが利用用途は限られていた • 複数サーバやマルチコアCPUを活用することが難しい
• 対Kafkaだと擬似的にクラスタリングできるが、デプロイ周りを上手く作っ てやる必要がある fluentd fluentd fluentd こんな感じでパワフルに動いてくれ るとありがたいが…
会社でのKubernetesの導入 • マイクロアドでは数年くらいK8sの準備をインフラチームの方で進めている • それ以外のサーバはDockerデーモンを直で使っていることが多い • ある時、リアルタイム処理の開発が必要になったが大した処理ではないので FluentdとK8sを組み合わせて使ってみることにした
K8sでFluentdの弱点が解消できた • Kafka consumer groupによって複数のFluentdのプロセスは一つのKafkaト ピックから重複することなく一つのデータを受け取ることができる これにより、そこまで難しいこと考えることなくk8sにデプロイして • k8sでFluentdクラスタを作ることができた •
マルチコアのCPUを有効活用をできた • 複数サーバに展開してHA構成にすることができた Kafka Kubernetesクラスタ Pod Pod Fluentd Fluentd Redis 管理が楽
K8sでSpark Streamingの移行先の目処が付きそう • Spark Streamingを動かしているHadoopの老朽化問題があったが • K8sでのSpark検証が進んでいて移行することができそうな状況 Kubenetesクラスタ Pod Pod
Driver Executor K8s Master Spark Kafka Pod Executor
まとめ • KubernetesでFluentdの弱点を大きく改善することができた • ノード管理やHA化なども難しいこと考えることなく実現できた • KubernetesでSpark Streamingを活用することができた • 弊社のリアルタイム処理周りはK8sでほとんどカバーすることができそう
• k8sの威力を思い知り勉強を再開しようと思った
ご清聴ありがとうございました