More Related Content
More from Kenta Suzuki (9)
Data Stream Processing and Analysis on AWS #awscasual
- 1. Data Stream Processing and
Analysis on AWS:
Fluentd, Elasticsearch, DynamoDB,
EMR and Amazon Kinesis
AWS Casual Talks #2
@suzu_v
- 19. Arch. #1 / 2012 mid.
Cons
not real-time
MongoDBのwriteによる負荷
が高い
MongoDBの集計処理が重い
MapReduceジョブを回さな
いと分析ができない
Pros
MongoDBの柔軟性
データの受け入れが
安定
- 22. Arch. #2 / 2014 early
Cons
Fluentdが便利すぎるがために、aggregatorにい
ろいろやらせすぎてる。
Fluentdのバッファが詰まって死ぬ、とか
ある困る。
preノードを追加してストリームを逃がす
こともしているが、fluentの設定が複雑化
する
ストリーム処理をより柔軟に、多様に、疎結合
に扱いたい
Elasticsearchに長期間の大量データを集計させ
るとそれなりにパワーが必要
Pros
Elasticsearch + Kibanaにより、エンジニア以
外のメンバーもhotなデータのドリルダウン
を行えるように
DynamoDB導入によりwrite / readともに安定
dynamic-dynamodbを採用。throughput
を自動調節するように。
EMR上のHiveから、s3にあるログとDynamoDB
にある分析済みデータを組み合わせたクエ
リが可能に
準リアルタイムなターゲティングが可能に
- 27. ざっくりとした使用感 - consumer
DynamoDBが活躍する。Kinesis ApplicationからDynamoDBへの書き込みは楽。Scalingも問題な
い。
readは1 shard 5 transaction / sec.の制限がある。なので1transactionである程度まとめてデータ
を取得する作りにする必要がある。そもそも足りないならshardを増やす。
失敗時のretryのため、Kinesis Applicationの各Workerで各Shardをどこまで処理したのかを
Checkpointとして記録しておく必要がある。KCL(Kinesis Client Library)使うとこのへんはよしな
にDynamoDBで管理するようにしてくれる。
EMRからもConnectorがあるので簡単に扱える。
EMR上のSpark Streamingから扱うのは手軽で良い。EMRでSparkクラスタを立てられるので、
aliveにしてストリームに対してwindowクエリを流し続けるのは手軽なユースケースになりそ
う。
- 32. Kinesis関連
Amazon Web Services ブログ: 【AWS発表】KinesisとElastic MapReduceを使ってストリーミングデータ
を処理する
http://aws.typepad.com/aws_japan/2014/03/process-streaming-data-with-kinesis-and-elastic-
mapreduce.html
Amazon Kinesis: Real-time Streaming Big data Processing Applications (BDT311) | AWS re:Invent 2013
http://www.slideshare.net/AmazonWebServices/amazon-kinesis-realtime-streaming-big-data-
processing-applications-bdt311-aws-reinvent-2013
https://www.youtube.com/watch?v=AXAaCG2QUkE
re:Invent 2013でのKinesisの紹介スライド及びビデオです。KeynoteでのKinesisのデモに利用さ
れていたTwitterのhashtagをcountするデモの構築方法についてまとまっています。
ShardのマネジメントをDynamoDBを利用して行っているところなど、わかりやすく説明され
ています。
- 33. Kinesis関連
Developing Record Consumer Applications - Amazon Kinesis
http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-record-processor-
app.html
Kinesis Client Libraryを使ったConsumerの作成方法についてまとまっていま
す
Tutorial: Analyzing Amazon Kinesis Streams with Amazon EMR and Hive - Amazon
Elastic MapReduce
http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/query-
kinesis.html
Kinesis StreamをEMR上のHiveで取り扱う方法について説明されています。
- 34. Log4jAppender for Kinesis
Download Log4J Appender for Amazon Kinesis Sample
Application, Sample Credentials File, and Sample Log
File - Amazon Elastic MapReduce
http://docs.aws.amazon.com/ElasticMapReduce/
latest/DeveloperGuide/kinesis-pig-publisher.html
てっとりばやくKinesisに書き込みたいならこれが
いいです
- 35. Kinesis with EMR
Spark Streaming
http://www.cs.berkeley.edu/~marmbrus/sparkdocs/_site/streaming-
programming-guide.html
cold dataとhot dataを組み合わせてwindowしたり
例)特定クライアントのキャンペーンにおける5分毎のクリック数
Run Spark and Shark on Amazon Elastic MapReduce : Articles & Tutorials :
Amazon Web Services
https://aws.amazon.com/articles/Elastic-MapReduce/4926593393724923