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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Keigo Suda
December 15, 2016
18
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
400
Professional Serviceという働き方
keigosuda
0
35
パッケージ構成っていつでも悩ましい
keigosuda
0
15
スマートファクトリーを⽀えるIoTインフラをつくった話
keigosuda
0
23
20161212jawsbigdata-161214152052.pdf
keigosuda
0
21
Apache Kafka & Kafka Connectを使ったデータ連携パターン(改めETLの実装)
keigosuda
0
11
基幹業務もHadoopで!!
keigosuda
0
21
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
RailsConf 2023
tenderlove
30
1.5k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Color Theory Basics | Prateek | Gurzu
gurzu
0
360
Designing Experiences People Love
moore
143
24k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
250
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
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
ありがとうございました!!