2016/12/15
ヤフー株式会社 梁 浩軒
Kafka
通常オペレーションで遭遇する問題集
1
アジェンダ
本LTの説明
-サーバ追加時のBroker Idどうするか問題
-サーバリプレイス時Broker Id歯抜け問題
-TOPICリアサイン時disk使用率問題
-TOPICパーティション割り振りどうするか問題
-Kafka-managerのConsumer-version不一致
まとめ
2
本LTの説明
Kafkaを運用してきて、頻繁に遭遇する各種オペレーションに
付いてまとめる
主にKafka0.8系と0.10系で発生した問題について述べる
3
サーバ追加時のBroker Idどうするか問題
・新規Brokerを追加するときにBroker Idの割り振り方をホスト
名にそって連番でつけたい、ただし、デフォルトの機能
(0.9~0.10系)を使うとずれる
ー>ホスト名からBroker Idを作成するシェルをつくります
4
サーバリプレイス時Broker Id歯抜け問題
Broker Id歯抜け問題
・ホスト名から連番を設定していたため、新たに追加するとリ
プレイスしたホスト名とBroker Idが歯抜けになる
ー>ホスト名を変更して対応しようとするとデータ一時避難
用のサーバとリプレイス用のサーバが2つ必要になる
5
TOPICリアサイン時disk使用率問題
・TOPICをリアサインするとタイムスタンプが更新され、データ
が削除されなくなるため、disk使用量が2倍になる
ー>サーバに割り振るトピックの総データサイズが50%になら
ないようにする
6
TOPICパーティション割り振りどうするか問題
・リーダとレプリカは同時に落とせない。適当に割り振るとオ
ペレーションが大変になる
ー>奇数にリーダ、偶数にレプリカなどルールを決めて割り
振るシェルを作成する
ー>0.10系からはラックアウェアネスというラックごとのリーダ
とレプリカの割り振り機能がある
7
Kafka-managerのConsumer-version不一致
・Kafka-managerで複数versionのkafkaクラスタを管理すると
き、kafka-managerのconsumerが1-versionしかないため、
データをconsumeできないときがある
ー>別々のversionのKafka-managerを立てる
8
まとめ
・サーバ追加時やサーバリプレイス時、TOPIC操作時にも面
倒な対応が必要になる
・このほかにも、TOPICリアサイン時やパーティションリーダ
再抽選時のトラフィック問題など、通常オペレーションで気に
しなければいけないことはいろいろある。
ー>今後の改善に期待
9

Kafka通常オペレーションで遭遇する問題集 #kafkajp