SlideShare a Scribd company logo
1 of 19
Download to read offline
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

elasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみるelasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみる
Katsushi Yamashita
 

What's hot (20)

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

Viewers also liked

Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Keigo Suda
 
Kafkaによるリアルタイム処理
Kafkaによるリアルタイム処理Kafkaによるリアルタイム処理
Kafkaによるリアルタイム処理
Naoki Yanai
 
Lt 私の○○遍歴教えるね これまで愛したキーボードたち
Lt 私の○○遍歴教えるね これまで愛したキーボードたちLt 私の○○遍歴教えるね これまで愛したキーボードたち
Lt 私の○○遍歴教えるね これまで愛したキーボードたち
Keigo Suda
 
ログモニタリングツールを自作した話
ログモニタリングツールを自作した話ログモニタリングツールを自作した話
ログモニタリングツールを自作した話
Hiroki Takeda
 

Viewers also liked (14)

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

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

Elastic beanstalk と Docker と Play
Elastic beanstalk と Docker と PlayElastic beanstalk と Docker と Play
Elastic beanstalk と Docker と Play
Takashi Kawachi
 
AsakusaのドキュメントをDashで見たい
AsakusaのドキュメントをDashで見たいAsakusaのドキュメントをDashで見たい
AsakusaのドキュメントをDashで見たい
Takashi Aoe
 

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

Apache Antについて
Apache AntについてApache Antについて
Apache Antについて
 
Akkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka docAkkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka doc
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
Devops4cloudlbuilder ja
Devops4cloudlbuilder jaDevops4cloudlbuilder ja
Devops4cloudlbuilder ja
 
PlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.keyPlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.key
 
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
 
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaSkinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
 
Apache EventMesh を使ってみた
Apache EventMesh を使ってみたApache EventMesh を使ってみた
Apache EventMesh を使ってみた
 
Yet anothor プロジェクト管理ツール ~Backlog~
Yet anothor プロジェクト管理ツール ~Backlog~Yet anothor プロジェクト管理ツール ~Backlog~
Yet anothor プロジェクト管理ツール ~Backlog~
 
Lombok ハンズオン
Lombok ハンズオンLombok ハンズオン
Lombok ハンズオン
 
Elastic beanstalk と Docker と Play
Elastic beanstalk と Docker と PlayElastic beanstalk と Docker と Play
Elastic beanstalk と Docker と Play
 
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
 
Jawsug福岡 201606 up
Jawsug福岡 201606 upJawsug福岡 201606 up
Jawsug福岡 201606 up
 
Kafka Summit NYCに見るストリーミングデータETLの話 #streamdatajp
Kafka Summit NYCに見るストリーミングデータETLの話 #streamdatajpKafka Summit NYCに見るストリーミングデータETLの話 #streamdatajp
Kafka Summit NYCに見るストリーミングデータETLの話 #streamdatajp
 
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall TokyoCouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
 
AsakusaのドキュメントをDashで見たい
AsakusaのドキュメントをDashで見たいAsakusaのドキュメントをDashで見たい
AsakusaのドキュメントをDashで見たい
 
Apache CloudStack 日本語ドキュメント翻訳会資料
Apache CloudStack 日本語ドキュメント翻訳会資料Apache CloudStack 日本語ドキュメント翻訳会資料
Apache CloudStack 日本語ドキュメント翻訳会資料
 
Jazug6周年lt(片倉義昌)
Jazug6周年lt(片倉義昌)Jazug6周年lt(片倉義昌)
Jazug6周年lt(片倉義昌)
 
Elastic StackでWebサーバのログ解析を始めた件について
Elastic StackでWebサーバのログ解析を始めた件についてElastic StackでWebサーバのログ解析を始めた件について
Elastic StackでWebサーバのログ解析を始めた件について
 
ScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったでScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったで
 

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