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
Kafka logをオブジェクトストレージに連携する⽅法まとめ
Search
Keigo Suda
December 15, 2016
23
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kafka logをオブジェクトストレージに連携する⽅法まとめ
Keigo Suda
December 15, 2016
More Decks by Keigo Suda
See All by Keigo Suda
フレームワークを意識させないワークショップづくり
keigosuda
0
410
Professional Serviceという働き方
keigosuda
0
39
パッケージ構成っていつでも悩ましい
keigosuda
0
17
スマートファクトリーを⽀えるIoTインフラをつくった話
keigosuda
0
25
20161212jawsbigdata-161214152052.pdf
keigosuda
0
26
Apache Kafka & Kafka Connectを使ったデータ連携パターン(改めETLの実装)
keigosuda
0
12
基幹業務もHadoopで!!
keigosuda
0
28
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
660
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
Become a Pro
speakerdeck
PRO
31
6k
Why Our Code Smells
bkeepers
PRO
340
58k
Practical Orchestrator
shlominoach
191
11k
From π to Pie charts
rasagy
0
240
Music & Morning Musume
bryan
47
7.3k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Transcript
Kafka logをオブジェクトストレージに 連携する⽅法まとめ Apache Kafka Meetup Japan #2 2016/12/15 Future
Architect Inc, Keigo Suda
お話すること l Kafkaのlogデータをオブジェクトストレージにアーカイブする必要があったので、 その時に⾊々と調べたのでその時の話(主にOSS) l 要は⼈柱になったよって話 どうやろう?
* Technology Innovation Group スペシャリスト * 今の専⾨ -> ⼤きいデータを扱う領域(インフラ〜アプリ) *
最近はもっぱらKafkaとストリーム処理エンジンの諸々 須⽥桂伍 (すだ けいご) keigodasu
もとめてた要件 l 最低限⼈が直接読める形で書き出したい l あわよくばParquetとか他のファイルフォーマットでも出せると何かと便利かも l なるべくソーシャルの⼒に頼りたい(ぶっちゃけ作るモチベーションあがらないw) l アーカイブ⽬的なので⾮機能⾯はあまり重視していない
選択肢 l Kafka Connect l Secor l Embulk
選択肢 l Kafka Connect(実際に試した) l Secor(実際に試した) l Embulk(Kafka to S3は試してない)
Kafka Connect l Kafkaとデータをやりとりするためのフレームワーク l Kafkaの0.9より導⼊された機能でKafkaへのIn/Outが実装可能 l http://www.slideshare.net/keigosuda/apache-kafka-kafka-connect- etl-70167024 l
設定ファイルベースで挙動をコントロール l コネクタアプリさえ作ればあとは設定ファイルで操作 l S3へのSinkコネクターは以下 l https://github.com/qubole/streamx l https://github.com/DeviantArt/kafka-connect-s3
設定例(streamxの場合) l 設定ファイルを書いてKafka Connect起動コマンドを実⾏するだけ
設定例(kafka-connect-s3の場合) l 設定ファイルを書いてKafka Connect起動コマンドを実⾏するだけ
実⾏例(スタンドアローンの例) l 設定ファイルを引数に指定して起動コマンドを実⾏ l 第1引数: Kafka Connect⾃体の設定ファイル l 第2引数: コネクタ固有の設定ファイル
bin/connect-standalone.sh ¥ config/connect-standalone.properties ¥ streamx/config/quickstart-s3.properties
所 感 l streamx l Confuluentのkafka-connect-hdfsをフォークしている l だからいろんなファイルフォーットでの書き出し対応しているのをウリにしている l サンプルにあったテキストでS3に書き出す例は問題なく動く
l が!!肝⼼なそれ以外のやり⽅がわからない(え、またソース追うんすか・・・) l kafka-connect-s3 l テキスト出⼒しか対応していないため作り⾃体はシンプル l ちゃんとflush()とかonPartitionsAssigned()とか実装している l が!!Kafka 0.9系しか対応してない
そうですか・・・ l コネクタの対応バージョンは気をつけた⽅がよさげ l 0.9と0.10でのAPI互換がないらしい
Secor l Pinterestが公開しているOSS l https://github.com/pinterest/secor l 設定ファイルベースで挙動をコントロール l 実態は普通にConsumeして書き出すだけ l
様々なファイルフォーマットでの書き出しに対応 l Text l Seaquencefile l Parquet l Gzip
設定例 l 設定可能な情報がかなりおおいが、主だったものは以下の通り # Kafka/Zookeeperの接続情報 zookeeper.kafka.seed.broker.host=172.31.28.60 zookeeper.quorum=172.31.28.60:2181 # 連携する/しないトピック情報 secor.kafka.topic_filter=test_topic
secor.kafka.topic_blacklist=exclueded_topic # 連携先のS3情報 stored.secor.s3.bucket=secortest stored.secor.s3.path=secor # アップロードのトリガー secor.max.file.size.bytes=100 secor.max.file.age.seconds=10 # ファイルフォーマット secor.file.reader.writer.factory=com.pinterest.secor.io.impl.DelimitedTextFileReaderWriterFactory
使い⽅ l 以下を起動時の引数に指定して実⾏ l secor_group・・・S3に書き出す際のまとめかた l log4j.configuration・・・ログ(log4j)の設定 l Config・・・Secor⾃体の設定 l
実⾏クラス・・・実⾏するクラス java –ea ¥ -Dsecor_group=secor_backup ¥ -Dlog4j.configuration=log4j.prod.properties ¥ -Dconfig=secor.prod.backup.properties ¥ -cp secor-0.1-SNAPSHOT.jar:lib/* ¥ com.pinterest.secor.main.ConsumerMain
ちょっとした注意点 l Kafkaの0.10で使う場合はビルド時にバージョンを指定する必要あり l デファオルとだと0.8向け l 設定ファイルは分割可能で、サンプルで配置されているものも分割されているの でちょっと注意 $ mvn
-Pkafka-0.10-dev package include=secor.common.properties
結局 l 現状だとSecorがちゃんとしているので、これを使っている l いろいろできるみたいだが、使いこなせていない感も
まとめ l オブジェクトストレージへの連携をまじめにやっているのはSecorぐらいな気が l Kafkaのエコシステム群、ちょっと⾃由すぎてつらいw
ありがとうございました!!