SlideShare a Scribd company logo
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
ありがとうございました!!

More Related Content

What's hot (20)

PDF
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
Sotaro Kimura
 
PDF
ビッグじゃなくても使えるSpark Streaming
chibochibo
 
PPTX
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Sotaro Kimura
 
PPTX
Apache NiFiと 他プロダクトのつなぎ方
Sotaro Kimura
 
PDF
Spark shark
Tsuyoshi OZAWA
 
PDF
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Katsushi Yamashita
 
PDF
利用者主体で行う分析のための分析基盤
Sotaro Kimura
 
PDF
最近のストリーム処理事情振り返り
Sotaro Kimura
 
PPTX
Fluentd+elasticsearch+kibana(fluentd編)
Daisuke Kikuchi
 
PPTX
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
Sotaro Kimura
 
PPTX
Apache NiFi 流れるデータにもスキーマを
Koji Kawamura
 
PDF
Re:dash Use Cases at iPROS
Jumpei Yokota
 
PDF
Presto As A Service - Treasure DataでのPresto運用事例
Taro L. Saito
 
PDF
elasticsearch-hadoopをつかってごにょごにょしてみる
Katsushi Yamashita
 
PPTX
Cassandra Summit 2016 注目セッション報告
Yahoo!デベロッパーネットワーク
 
PDF
SparkTokyo2019NovIshizaki
Kazuaki Ishizaki
 
PDF
イケてる分析基盤をつくる
Atsushi Hayakawa
 
PDF
Embulkを活用したログ管理システム
Akihiro Ikezoe
 
PDF
sbtマルチプロジェクトビルドの使いどころ
Kazuhiro Hara
 
PDF
第一回Web技術勉強会 efkスタック編
tzm_freedom
 
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
Sotaro Kimura
 
ビッグじゃなくても使えるSpark Streaming
chibochibo
 
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Sotaro Kimura
 
Apache NiFiと 他プロダクトのつなぎ方
Sotaro Kimura
 
Spark shark
Tsuyoshi OZAWA
 
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Katsushi Yamashita
 
利用者主体で行う分析のための分析基盤
Sotaro Kimura
 
最近のストリーム処理事情振り返り
Sotaro Kimura
 
Fluentd+elasticsearch+kibana(fluentd編)
Daisuke Kikuchi
 
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
Sotaro Kimura
 
Apache NiFi 流れるデータにもスキーマを
Koji Kawamura
 
Re:dash Use Cases at iPROS
Jumpei Yokota
 
Presto As A Service - Treasure DataでのPresto運用事例
Taro L. Saito
 
elasticsearch-hadoopをつかってごにょごにょしてみる
Katsushi Yamashita
 
Cassandra Summit 2016 注目セッション報告
Yahoo!デベロッパーネットワーク
 
SparkTokyo2019NovIshizaki
Kazuaki Ishizaki
 
イケてる分析基盤をつくる
Atsushi Hayakawa
 
Embulkを活用したログ管理システム
Akihiro Ikezoe
 
sbtマルチプロジェクトビルドの使いどころ
Kazuhiro Hara
 
第一回Web技術勉強会 efkスタック編
tzm_freedom
 

Viewers also liked (14)

PDF
スマートファクトリーを支えるIoTインフラをつくった話
Keigo Suda
 
PDF
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
Hiroki Takeda
 
PDF
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Keigo Suda
 
PDF
基幹業務もHadoop(EMR)で!!のその後
Keigo Suda
 
PDF
Kafkaによるリアルタイム処理
Naoki Yanai
 
PDF
Lt 私の○○遍歴教えるね これまで愛したキーボードたち
Keigo Suda
 
PDF
Apache drillを業務利用してみる(までの道のり)
Keigo Suda
 
PPTX
Extending the Yahoo Streaming Benchmark + MapR Benchmarks
Jamie Grier
 
PDF
ログモニタリングツールを自作した話
Hiroki Takeda
 
PDF
もうすぐ春だしAWSでさくらをやってみた
Masamitsu Maehara
 
PDF
世界はつながっている!VyOSで実現するマルチリージョン
Masamitsu Maehara
 
PDF
楽天トラベルの開発プロセスに関して
Rakuten Group, Inc.
 
PDF
AWSからのメール送信
Amazon Web Services Japan
 
PDF
Io tプラットフォーム主要ベンダ相関図2017mar.
Keiichiro Nabeno
 
スマートファクトリーを支えるIoTインフラをつくった話
Keigo Suda
 
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
Hiroki Takeda
 
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Keigo Suda
 
基幹業務もHadoop(EMR)で!!のその後
Keigo Suda
 
Kafkaによるリアルタイム処理
Naoki Yanai
 
Lt 私の○○遍歴教えるね これまで愛したキーボードたち
Keigo Suda
 
Apache drillを業務利用してみる(までの道のり)
Keigo Suda
 
Extending the Yahoo Streaming Benchmark + MapR Benchmarks
Jamie Grier
 
ログモニタリングツールを自作した話
Hiroki Takeda
 
もうすぐ春だしAWSでさくらをやってみた
Masamitsu Maehara
 
世界はつながっている!VyOSで実現するマルチリージョン
Masamitsu Maehara
 
楽天トラベルの開発プロセスに関して
Rakuten Group, Inc.
 
AWSからのメール送信
Amazon Web Services Japan
 
Io tプラットフォーム主要ベンダ相関図2017mar.
Keiichiro Nabeno
 
Ad

Kafka logをオブジェクトストレージに連携する方法まとめ