Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
30
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
440
Professional Serviceという働き方
keigosuda
0
45
パッケージ構成っていつでも悩ましい
keigosuda
0
24
スマートファクトリーを⽀えるIoTインフラをつくった話
keigosuda
0
30
20161212jawsbigdata-161214152052.pdf
keigosuda
0
35
Apache Kafka & Kafka Connectを使ったデータ連携パターン(改めETLの実装)
keigosuda
0
14
基幹業務もHadoopで!!
keigosuda
0
38
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
The Invisible Side of Design
smashingmag
301
52k
Faster Mobile Websites
deanohume
310
32k
4 Signs Your Business is Dying
shpigford
187
23k
Facilitating Awesome Meetings
lara
57
7.1k
How to build a perfect <img>
jonoalderson
1
6k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Making Projects Easy
brettharned
120
6.8k
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
ありがとうございました!!