Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Apache Kafkaでの大量データ処理がKubenetesで簡単にできて嬉しかった話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
システム開発部広報委員会
PRO
November 21, 2023
Programming
0
12
Apache Kafkaでの大量データ処理がKubenetesで簡単にできて嬉しかった話
システム開発部広報委員会
PRO
November 21, 2023
Tweet
Share
More Decks by システム開発部広報委員会
See All by システム開発部広報委員会
マイクロアドでの Hive → Iceberg 移行事例紹介
microaddevelopers
PRO
1
58
Rancher × Hashicorp Vault で 実現する秘密情報管理
microaddevelopers
PRO
1
14
大規模システムを支える実践的インフラ基盤の開発と運用
microaddevelopers
PRO
0
12
マイクロアドのData LakehouseとIcebergテーブルの最適化について
microaddevelopers
PRO
1
24
広告配信システムにおけるデータ基盤移行の事例紹介
microaddevelopers
PRO
0
6
3rd Party Cookie 規制後の広告配信技術
microaddevelopers
PRO
0
6
Kafka Connect:Iceberg Sink Connectorを使ってみる
microaddevelopers
PRO
1
17
【技術報告】広告配信における安定して拡張性のある大量データ処理基盤の必要性と活用
microaddevelopers
PRO
0
7
Chromeの3rd Party Cookie廃止とインターネット広告への影響
microaddevelopers
PRO
0
6
Other Decks in Programming
See All in Programming
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
190
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
150
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.1k
OTP を自動で入力する裏技
megabitsenmzq
0
110
Claude Codeログ基盤の構築
giginet
PRO
7
3.4k
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
260
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
110
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
110
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.3k
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
270
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
550
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
240
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
230
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
230
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
260
Side Projects
sachag
455
43k
Why Our Code Smells
bkeepers
PRO
340
58k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
180
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
320
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
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の威力を思い知り勉強を再開しようと思った
ご清聴ありがとうございました