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!デベロッパーネットワーク
PDF, PPTX
2,804 views
Kafka 0.10.0 アップデート、プロダクション100ノードでやってみた #yjdsnight
D&S Data Night vol.03 http://yahoo-ds-event.connpass.com/event/37040/ 発表資料
Technology
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 23
2
/ 23
3
/ 23
4
/ 23
5
/ 23
6
/ 23
7
/ 23
8
/ 23
9
/ 23
10
/ 23
11
/ 23
12
/ 23
13
/ 23
14
/ 23
15
/ 23
16
/ 23
17
/ 23
18
/ 23
19
/ 23
20
/ 23
21
/ 23
22
/ 23
23
/ 23
More Related Content
PDF
Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp
by
Yahoo!デベロッパーネットワーク
PDF
噛み砕いてKafka Streams #kafkajp
by
Yahoo!デベロッパーネットワーク
PDF
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
by
Yahoo!デベロッパーネットワーク
PPTX
Cassandra Summit 2016 注目セッション報告
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPANにおけるApache Cassandraへの取り組み
by
Yahoo!デベロッパーネットワーク
PDF
SlowQueryログ開発秘話#cassandrameetupjp
by
Yahoo!デベロッパーネットワーク
PDF
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
by
matsu_chara
PPTX
Kafkaを活用するためのストリーム処理の基本
by
Sotaro Kimura
Hadoop Summit 2016 San Jose ストリーム処理関連の報告 #streamctjp
by
Yahoo!デベロッパーネットワーク
噛み砕いてKafka Streams #kafkajp
by
Yahoo!デベロッパーネットワーク
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
by
Yahoo!デベロッパーネットワーク
Cassandra Summit 2016 注目セッション報告
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPANにおけるApache Cassandraへの取り組み
by
Yahoo!デベロッパーネットワーク
SlowQueryログ開発秘話#cassandrameetupjp
by
Yahoo!デベロッパーネットワーク
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
by
matsu_chara
Kafkaを活用するためのストリーム処理の基本
by
Sotaro Kimura
What's hot
PDF
introduction of WalB
by
MITSUNARI Shigeo
PDF
ヤフー発のメッセージキュー「Pulsar」のご紹介
by
Yahoo!デベロッパーネットワーク
PDF
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
by
Nozomi Kurihara
PDF
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
by
Yahoo!デベロッパーネットワーク
PDF
Apache Kylinについて #hcj2016
by
Yahoo!デベロッパーネットワーク
PDF
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
by
terurou
PDF
Amazon Aurora Deep Dive (db tech showcase 2016)
by
Amazon Web Services Japan
PDF
PostgreSQLでスケールアウト
by
Masahiko Sawada
PDF
Kafka logをオブジェクトストレージに連携する方法まとめ
by
Keigo Suda
PDF
マルチビッグデータの活用を支える DWHの作り方
by
Yahoo!デベロッパーネットワーク
PDF
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
by
Sotaro Kimura
PDF
ビッグじゃなくても使えるSpark Streaming
by
chibochibo
PDF
実環境にTerraform導入したら驚いた
by
Akihiro Kuwano
PDF
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑧
by
Yahoo!デベロッパーネットワーク
PDF
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
by
Insight Technology, Inc.
PDF
Azure <3 Openness
by
Keiji Kamebuchi
PDF
Kafka通常オペレーションで遭遇する問題集 #kafkajp
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②
by
Yahoo!デベロッパーネットワーク
PDF
大規模運用で見えるWebプロトコルの理想と現実、そして今後 #html5j #html5j_b
by
Yahoo!デベロッパーネットワーク
PPTX
みんなのTerraformで AWSをテラフォーミングさせるぜ
by
Takamasa Sakai
introduction of WalB
by
MITSUNARI Shigeo
ヤフー発のメッセージキュー「Pulsar」のご紹介
by
Yahoo!デベロッパーネットワーク
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
by
Nozomi Kurihara
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
by
Yahoo!デベロッパーネットワーク
Apache Kylinについて #hcj2016
by
Yahoo!デベロッパーネットワーク
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
by
terurou
Amazon Aurora Deep Dive (db tech showcase 2016)
by
Amazon Web Services Japan
PostgreSQLでスケールアウト
by
Masahiko Sawada
Kafka logをオブジェクトストレージに連携する方法まとめ
by
Keigo Suda
マルチビッグデータの活用を支える DWHの作り方
by
Yahoo!デベロッパーネットワーク
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
by
Sotaro Kimura
ビッグじゃなくても使えるSpark Streaming
by
chibochibo
実環境にTerraform導入したら驚いた
by
Akihiro Kuwano
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑧
by
Yahoo!デベロッパーネットワーク
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
by
Insight Technology, Inc.
Azure <3 Openness
by
Keiji Kamebuchi
Kafka通常オペレーションで遭遇する問題集 #kafkajp
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②
by
Yahoo!デベロッパーネットワーク
大規模運用で見えるWebプロトコルの理想と現実、そして今後 #html5j #html5j_b
by
Yahoo!デベロッパーネットワーク
みんなのTerraformで AWSをテラフォーミングさせるぜ
by
Takamasa Sakai
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!デベロッパーネットワーク
Kafka 0.10.0 アップデート、プロダクション100ノードでやってみた #yjdsnight
1.
2016年8月31日 1 ヤフー株式会社 D&S データプラットフォーム本部
森谷 大輔 Kafka 0.10.0 アップデート プロダクション100ノードでやってみた
2.
自己紹介 • 氏名 • 森谷
大輔 • 業務 • 社内ストリーム処理PFの構築 • ストリームなアプリケーションの開発 • ストリーム周りで使う • Kafka, Storm, Cassandra, Elasticsearch 2
3.
本日の話 • Yahoo! のストリーム処理プラットフォームで稼働しているある1つ のKafkaクラスタを
0.8.1.1 から0.10.0 にバージョンアップした話 • 0.10.0 の機能等にフォーカスした話はしません(この後のセッショ ンにもあるし) • 稼働中の0.8系や0.9系クラスタからアップデートする人や新規導入 でリリースする人の検討の一助になればと思います 3
4.
アジェンダ • Y! のストリーム処理プラットフォームとKafka •
アップデート経緯 • 検証、リリース • アップデートを通して戸惑ったこと • まとめ 4
5.
アジェンダ • Y! のストリーム処理プラットフォームとKafka •
アップデート経緯 • 検証、リリース • アップデートを通して戸惑ったこと • まとめ 5
6.
Yahoo! JAPAN のストリーム処理プラットフォーム 6 •
様々なデータソースをリアルタイムに各サービスに提供、サービス の価値に貢献 アプリログ ソーシャルログ Weblog IoT Photo by insidetwit https://www.flickr.com/photos/insidetwit/ ・異常検知 ・ウィンドウ集計 ・オンライン機械学習 ・ETL
7.
Kafka採用理由 • LinkedInで実績がある • Stormと相性が良い •
高可用性 • Hadoopとも連携できる • とりあえずデータを投げればサービスをまたがって再利用可能 • consumer group と offset という素晴らしい概念 7
8.
アジェンダ • Y! のストリーム処理プラットフォームとKafka •
アップデート経緯 • 検証、リリース • アップデートを通して戸惑ったこと • まとめ 8
9.
Kafkaクラスタバージョンアップ • 今月頭、プラットフォームで稼働しているKafka(broker)クラスタの内1つを Kafka 0.10.0
にバージョンアップデートした • クラスタ概要 • 管轄している producer client もAPIバージョンアップ、Scala client ではなく Java client に 9 それまでのKafkaバージョン 0.8.1.1 クラスタ規模 100+ 物理ノード (サーバあたり)ディスク SAS 4発 ネットワーク 1Gb Ethernet メモリ 64GBMEM CPU 12 core <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.10</artifactId> <version>0.8.1.1</version> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>0.10.0.0</version>
10.
Why 0.8.1.1 →
0.10.0 ? • Kafkaクラスタへの書き込み性能向上見込み • 普通にユーザが新しいOSSのclientを使えるようにしたい • 新しいメッセージフォーマットに付与されたtimestampを使って audit がした い • auditは過去もしていたのだがtimestampは独自producerライブラリをユーザに使ってもらう ことで付与させていた 10
11.
Kafkaクラスタへの書き込み性能向上見込み • 投入ログの種類が増えることになったが、見積もったら現在のクラスタでは broker への書き込み性能限界にかかる •
もうサーバは買わない、ソフト面で解決したい • 対象クラスタのボトルネックは producer で圧縮したデータが broker で解凍 再圧縮されることに端を発していた • 一定の保持期限を維持するためにgzip圧縮を採用していた • 0.10では解消 • 大幅にクラスタの能力は向上するはずだという目論見があった • このクラスタは実は性能問題のためreplication factor=1にしていて、その状態でも冗長性を担保するため にclientライブラリを自作し、ユーザに使うことを強制していた(やめたい) 11
12.
リリースに踏み切る後押し理由 • 今回のアップデートは短期間で進めるのに好条件だった • 背景にKafka
0.7 → 0.8バージョンアップ時の苦い経験 • 互換性の無いAPI変更 • プラットフォーム側がコントロールできないほど多い利用者 • 原則ダウンタイム不可 • 何を検証すべきか、どんなオペレーションが発生するかノウハウが無い • 想定外の高コストに・・・ • しかし今回クラスタのアップデート条件は • 0.8 client → 0.10 serverは互換性あり • 利用者が少なく密な連携が可能 • リリース時ダウンタイム、損失が可能 • 前回の反省、ノウハウがある 12 いけるっ・・・
13.
アジェンダ • Y! のストリーム処理プラットフォームとKafka •
アップデート経緯 • 検証、リリース • アップデートを通して戸惑ったこと • まとめ 13
14.
検証 • バージョンアップの検証は特に今動いているものがバージョンアップ後に同 じ要件で動くかに注意する必要がある • 新しい機能が享受できるかに注意を奪われがちかも 14
15.
• 何を検証すればいい? • ドキュメントに書いてあるから検証しなくてもいいということはない、しかし細かくやったらキリがない •
自信があればやらないし、自信がなければやる、細かいところは正直運用勘 時間とリスクを天秤 broker視点の検証 問い 答え 今使われている client は冗長性を担保しつつ問題無く動く? Yes これから使うことが決まっている client は冗長性を担保しつつ問題無く動く? Yes 性能要件、サーバを増やさなくてもしばらく後まで耐えれる? Yes 今までの日常オペレーションと同じことができる? Yes 想定のリリースオペレーションはアップデート条件にかなう? Yes 15
16.
broker耐障害性検証 • 特にproducerでbroker故障時に想定外に大量損失したりしないか見る • かなりアナログなチェック手段 •
ちゃんと損失する想定のところはこれで損失が判明、valueさえ見ればいつ損失したかも簡単にわかって安心感がある • 想定の損失で済んだため冗長性の問いの答えはOKに • ちなみにリーダーのpartitionをリアサインしても若干損失する 16 producer value = timestamp timestamp生成 ファイル書き出し produce broker broker consumer ファイル書き出し consume 1472131704003 1472131704001 1472131704000 ・・・ 1472131704003 1472131704000 ・・・ sort diff ack = 1
17.
性能検証 • ボトルネックになっていた broker
への書き込み能力は 0.8.1.1 から 0.10.0 で 約8倍の向上を計測した • よって性能要件についての問いの答えはOKになった • producer でgzip圧縮しているユースケースならではの話 • 想定通りbrokerで解凍再圧縮が回避されているからだと思われる • 注意 • 圧縮に関わる性能テストは同じ内容のメッセージにすると圧縮率がものすごく良くなって意味 のないテストと化す • 本番ログを一定量ファイルに書き出し、検証producerはそれを読んでproduceするようにした 17
18.
リリース • 割愛 • リリース作業時間が想定よりかかったけどうまくいった 18
19.
アジェンダ • Y! のストリーム処理プラットフォームとKafka •
アップデート経緯 • 検証、リリース • アップデートを通して戸惑ったこと • まとめ 19
20.
戸惑ったこと① • リリース時までパーティションの配置を正確に考えていなくてリリース時 間がかかった • 例えば
replication factor = 2 でも、オペレーションで一気に10台落としても大 丈夫なようにパーティション配置を考える必要がある • 若干の損失が許容できるなら unclean leader election を有効にしていれば全 レプリカが落ちても問題ないことは後で知った • broker.idは自動採番でふったがその後ホスト名連番と合わせたくなった • log.dirsに配置されているmeta.propertiesファイルのbroker.idを書き換えて再起 動したら変更できた 20
21.
戸惑ったこと② • 特定のconsumer groupのオフセットリセットしたい要望があるんだけど 0.10ではどうやるの? •
0.8系まではZooKeeperにオフセットが書かれる前提だったので今までは対象のznode を削除するというオペレーションをしていた • 0.9系からはKafkaにオフセットが書き込まれる前提、どうするのか? • FAQに書いてあるが新しいJava consumerを使っていればseekメソッドで柔軟にオフ セットが変更できる • FAQは読んでおいた方がいい、ドキュメントの中でも重要度が高い 21
22.
アジェンダ • Y! のストリーム処理プラットフォームとKafka •
アップデート経緯 • 検証、リリース • アップデートを通して戸惑ったこと • まとめ 22
23.
まとめ • Y! のストリーム処理プラットフォームで稼働しているあるKafkaク ラスタを0.8.1.1から0.10.0にバージョンアップした •
一番の目的は性能ボトルネックの改善 • ユーザ要件は短期間で検証、アップデートする上で都合が 良かった • アップデートをする上で何を検証するべきか考えた • 性能検証ではこのユースケースにおいてはbrokerへの書き 込み能力が8倍に向上した 23
Download