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
Keigo Suda
December 15, 2016
32
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
450
Professional Serviceという働き方
keigosuda
0
46
パッケージ構成っていつでも悩ましい
keigosuda
0
25
スマートファクトリーを⽀えるIoTインフラをつくった話
keigosuda
0
32
20161212jawsbigdata-161214152052.pdf
keigosuda
0
35
Apache Kafka & Kafka Connectを使ったデータ連携パターン(改めETLの実装)
keigosuda
0
14
基幹業務もHadoopで!!
keigosuda
0
38
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
460
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Bash Introduction
62gerente
615
220k
Docker and Python
trallard
47
4.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
640
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
Embracing the Ebb and Flow
colly
88
5.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Evolving SEO for Evolving Search Engines
ryanjones
0
330
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
ありがとうございました!!