Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yahoo!デベロッパーネットワーク
15,109 views
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Apache Kafka Meetup Japan #3 https://kafka-apache-jp.connpass.com/event/58619/ 発表資料
Technology
◦
Read more
5
Save
Share
Embed
Embed presentation
Download
Downloaded 25 times
1
/ 15
2
/ 15
3
/ 15
4
/ 15
5
/ 15
6
/ 15
7
/ 15
8
/ 15
Most read
9
/ 15
Most read
10
/ 15
11
/ 15
12
/ 15
13
/ 15
Most read
14
/ 15
15
/ 15
More Related Content
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
by
Toru Makabe
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
by
NTT DATA Technology & Innovation
PDF
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PPTX
分散システムについて語らせてくれ
by
Kumazaki Hiroki
PDF
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
by
Toru Makabe
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
by
NTT DATA Technology & Innovation
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
マイクロにしすぎた結果がこれだよ!
by
mosa siru
分散システムについて語らせてくれ
by
Kumazaki Hiroki
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
What's hot
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
PDF
DockerとPodmanの比較
by
Akihiro Suda
PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
by
NTT DATA Technology & Innovation
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
PDF
SolrとElasticsearchを比べてみよう
by
Shinsuke Sugaya
PDF
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
by
NTT DATA Technology & Innovation
PDF
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
PDF
あなたの知らないPostgreSQL監視の世界
by
Yoshinori Nakanishi
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
by
NTT DATA Technology & Innovation
PPTX
分散ストレージ技術Cephの最新情報
by
Emma Haruka Iwao
PDF
Paxos
by
Preferred Networks
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
DBスキーマもバージョン管理したい!
by
kwatch
PPTX
Dockerからcontainerdへの移行
by
Akihiro Suda
PDF
PostgreSQLでスケールアウト
by
Masahiko Sawada
PPTX
Prometheus入門から運用まで徹底解説
by
貴仁 大和屋
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
PDF
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
by
Google Cloud Platform - Japan
PPTX
Azure API Management 俺的マニュアル
by
貴志 上坂
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
DockerとPodmanの比較
by
Akihiro Suda
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
by
NTT DATA Technology & Innovation
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
SolrとElasticsearchを比べてみよう
by
Shinsuke Sugaya
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
by
NTT DATA Technology & Innovation
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
あなたの知らないPostgreSQL監視の世界
by
Yoshinori Nakanishi
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
by
NTT DATA Technology & Innovation
分散ストレージ技術Cephの最新情報
by
Emma Haruka Iwao
Paxos
by
Preferred Networks
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
マイクロサービス 4つの分割アプローチ
by
増田 亨
DBスキーマもバージョン管理したい!
by
kwatch
Dockerからcontainerdへの移行
by
Akihiro Suda
PostgreSQLでスケールアウト
by
Masahiko Sawada
Prometheus入門から運用まで徹底解説
by
貴仁 大和屋
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
by
Google Cloud Platform - Japan
Azure API Management 俺的マニュアル
by
貴志 上坂
Viewers also liked
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
by
Yahoo!デベロッパーネットワーク
PDF
MQTTとAMQPと.NET
by
terurou
PDF
メッセージキュー「Pulsar」の紹介 @OSC_20171007
by
Nozomi Kurihara
PDF
Jenkins 2.0 Pipeline & Blue Ocean
by
Akihiko Horiuchi
PDF
Ansibleで始めるインフラ構築自動化
by
dcubeio
PDF
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜
by
Jumpei Miyata
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
by
Yahoo!デベロッパーネットワーク
MQTTとAMQPと.NET
by
terurou
メッセージキュー「Pulsar」の紹介 @OSC_20171007
by
Nozomi Kurihara
Jenkins 2.0 Pipeline & Blue Ocean
by
Akihiko Horiuchi
Ansibleで始めるインフラ構築自動化
by
dcubeio
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜
by
Jumpei Miyata
More from Yahoo!デベロッパーネットワーク
PDF
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
PDF
継続的なモデルモニタリングを実現するKubernetes Operator
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
by
Yahoo!デベロッパーネットワーク
PDF
オンプレML基盤on Kubernetes パネルディスカッション
by
Yahoo!デベロッパーネットワーク
PDF
LakeTahoe
by
Yahoo!デベロッパーネットワーク
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
by
Yahoo!デベロッパーネットワーク
PDF
Persistent-memory-native Database High-availability Feature
by
Yahoo!デベロッパーネットワーク
PDF
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
by
Yahoo!デベロッパーネットワーク
PDF
eコマースと実店舗の相互利益を目指したデザイン #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ビッグデータから人々のムードを捉える #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
サイエンス領域におけるMLOpsの取り組み #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
「新しいおうち探し」のためのAIアシスト検索 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
by
Yahoo!デベロッパーネットワーク
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
継続的なモデルモニタリングを実現するKubernetes Operator
by
Yahoo!デベロッパーネットワーク
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
by
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes パネルディスカッション
by
Yahoo!デベロッパーネットワーク
LakeTahoe
by
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
by
Yahoo!デベロッパーネットワーク
Persistent-memory-native Database High-availability Feature
by
Yahoo!デベロッパーネットワーク
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
by
Yahoo!デベロッパーネットワーク
eコマースと実店舗の相互利益を目指したデザイン #yjtc
by
Yahoo!デベロッパーネットワーク
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
by
Yahoo!デベロッパーネットワーク
ビッグデータから人々のムードを捉える #yjtc
by
Yahoo!デベロッパーネットワーク
サイエンス領域におけるMLOpsの取り組み #yjtc
by
Yahoo!デベロッパーネットワーク
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
by
Yahoo!デベロッパーネットワーク
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
by
Yahoo!デベロッパーネットワーク
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
by
Yahoo!デベロッパーネットワーク
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
by
Yahoo!デベロッパーネットワーク
「新しいおうち探し」のためのAIアシスト検索 #yjtc
by
Yahoo!デベロッパーネットワーク
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
by
Yahoo!デベロッパーネットワーク
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
1.
At least onceってぶっちゃ け問題の先送りだったよね -
Apache Kafka Meetup Japan #3 - @shoe116
2.
アジェンダ 1. はじめに:自己紹介とsemanticsについて 2. 言い訳をするしかない状況についての共有と 謝罪 3.
at least onceとETL苦労話 4. KIP-98, 129で解決すること、しないこと
3.
1. はじめに
4.
1.1 about me •広告系→データ分析屋→HadoopでETL •利用なう:Storm/Tez/Hive.
Kafkaはconsume のみ •Java = Python > JavaScript > C++ •No Music, No Life. No Music, No Idol. •課外活動はこちら • https://shoe116.tumblr.com/
5.
1. at least
once(少なくとも1回) • 重複するかもしれないが、欠損はしない 2. at most once(最大1回) •欠損するかもしれないが、重複はしない 3. exactly once(正確に1回) •欠損も重複もしない •分散システムだと実装が非常に困難 1.2 semanticsについて
6.
2. 言い訳をするしかない 状況についての共有と謝罪
7.
• at least
onceだと、ETLする側としては「重複をどうす るか問題」は避けられないし、カジュアルに頼まれます • ここでLTすることになった当時(6月上旬)では確かに kafkaはexactly onceをサポートしてなくて、かつて僕 はkafka由来の重複排除の仕組みを考えました • それが、6/30(現地時間)のkafka0.11のリリースで exactly once(KPI-98, 129)対応がされて、僕が作った モノとLTで話すネタはオワコン化した可能性が・・・ • exactly once semanticsの詳しい話したかったけど コードまでは読む時間なかったです、ごめんなさい • 噂によると懇親会中に実装の解説してくれるらしいよ
8.
3. at least
onceと 重複排除苦労話
9.
3.1 弊社のデータパイプライン producer (DC1) kafka (DC4) storm (DC4) TEZ (DC4) Hive (DC4) kafka (DC1) producer (DC2) kafka (DC2) kafka (DC5) storm (DC5) TEZ (DC5) Hive (DC5) producer (DC3) kafka (DC3) At
Least Once At Least Once Exactly once ( & unify) Partitioning At Least Once At Least Once At Least Once
10.
3.2 重複排除の方法 1. kafkaのmessageにIDを埋めてproduce 2.
HDFSにIDをkey, DATAをvalueにして write 3. TezでIDをkeyにshuffleして重複排除処理 ID: asdfghjkl;:] Body: {aaa, bbb, ccc}ID: asdfghjkl;:] Body: {aaa, bbb, ccc}ID: asdfghjkl;:] DATA: {aaa, bbb, ccc} kafka storm HDFS $ID $DATA $ID $DATA $ID $DATA $ID $DATA $ID $DATA $ID $DATA $ID $DATA TEZ HDFS $ID $DATA $ID $DATA $ID $DATA $ID $DATA $ID $DATA
11.
3.2 重複排除にまつわる苦労話 1. 完全な意味での重複排除は困難 •
読み込める重複IDの量には限りがある • time windowを決めてその中で排除するしかない 2. パイプラインの正常稼働をどう担保するか • at least once = 件数はそのままor増える • 重複排除 = 件数はそのままor減る • 「件数が同じならOK」みたいな確認はできなくなる
12.
4. KIP-98, 129で 解決すること、しないこと
13.
4.1 KIP-98, 129で新規追加 1.
Partition単位でのidempotentなproduce • producerでsequentialなIDを発行 • messageとともにIDをbrokerに送ってhandlingする 2. 複数partitionに対するtransactionalなwrite • ごくごく一般的なTwo-Phase Commit • producerがtransactionをbegin, commit, abort 3. 同一Kafka内でのexactly-once stream処理 • messageのsendとoffsetのcommitを1リクエストで行う
14.
4.2 KIP-98, 129で解決しない 1.
Exactly onceなKafka mirroring •MirrorMakerはクラスタをまたぐ •クラスタまたぎのTransactionは管理されない 2. Kafka以外のコンポーネントに書き出す場合 • これまで通り、書き出す側でのstateの管理が必要 3. オペレーション/実装のミスでmessageが ダブってproduceされる場合(当然)
15.
関連資料 • https://archive.apache.org/dist/kafka/0.11.0.0/RELEASE_NOTES.html • https://www.confluent.io/blog/exactly-once-semantics-are-possible- heres-how-apache-kafka-does-it/ •
https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+- +Exactly+Once+Delivery+and+Transactional+Messaging
Download