[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
Apache  Flume  1.5  を活⽤用した
Amebaにおけるログのシステム連携
アメーバ事業本部
Ameba  Technology  Laboratory
飯島  賢志
2014.07.08
2
本⽇日の内容
株式会社サイバーエージェント
l Apache  Flumeについて
l Flumeを使ったログのシステム連携
l 最近のApache  FlumeのRelease
3
株式会社サイバーエージェント
⾃自⼰己紹介
●  飯島    賢志
●  (株)サイバーエージェント
    Ameba  Technology  Laboratory
●  Hadoop/Hiveを⽤用いたログ解析基盤の運⽤用
    AmebaサービスのFlumeの運⽤用
い  い  じ  ま    さ  と  し
Apache  Flumeについて
5
l  ⾼高い信頼性や可⽤用性を備え、⼤大量量のログを効率率率的かつ柔軟に
分岐・統合して転送できる
l  元々Clouderaの1プロジェクトでCDHでもサポート
l  Source(⼊入⼒力力),  Channel(キュー),  Sink(出⼒力力)の3つから構成
l  GoogleのFlumeJavaとは関係ない
l  Doc  :  https://flume.apache.org
Git    :  https://github.com/apache/flume    最新はVer.  1.5.1
Apache  Flume
6
l  転送の分岐/統合など柔軟なルーティングができる
l  ⾼高い信頼性
もしホストごと落落ちても復復旧させればデータロスしない
(File  Channel使⽤用時)
l  HDFS,  HBaseへの書込みは特に機能が充実
l  各Component(Sink,  Intereptorなど)は部品化されていて
独⾃自のものを開発しやすい
l  Avro-‐‑‒RPCで圧縮して転送できる
Flumeの特徴など
Flumeを使ったログのシステム連携
in  Ameba
8
株式会社サイバーエージェント
ログ転送システム構成
Hadoop
Ameba
サービス
Ameba
サービス
Ameba
サービス
Aggre
gator
Flume
Aggregator
Aggre
gator
HBase
ストリーム処理理
(Onix)
Recommend
システムログ監視
システム
統合・分岐しつつ各システムに絶えずログ転送
ストリーム処理理
(HBase  sink)
Elastic
Search
バッチ処理理
9
Amebaにおけるログ転送
l  導⼊入ホスト数   :  1,600  host
l  ピーク時         :  140,000  lines  /  sec
l  サイズ            :  2.0  TB  /  day(Raw)
l  トラフィック      :  80Mbps  (Compressed)
10
Flume  Agent  (JVM)
柔軟なルーティング  (1)
l  Source,  Channel,  Sinkは複数設定可
l  Channel  Selector
l  ログをHeaderの値で指定したChannelに
振り分ける
l  複数の宛先に同じログを同時転送もできる
(Multiplexing)
l  Optional  channels
l  もしChannelへのputを失敗してもリトライ
しない設定
l  リトライしないことで他の重要なChannelに
影響を及ぼさない
Source
Selector
ChannelChannel Channel
SinkSink Sink
Flume
AgentHadoop HBase
11
柔軟なルーティング  (2)
l  Failover
l  失敗が続いたら他のSinkに切切り替える
l  複数のSinkに対してpriority付けもできる
l  LoadBalancing
l  複数のSinkに負荷分散する
l  ⽅方式は  Round_̲robin  または  random
l  失敗が続いたものをBlacklist化できる
(backoff)
Flume  Agent  (JVM)
Channel
Sink Sink
Source
Flume  Agent  (JVM)
Channel
Sink
Source
SinkSinkSink
12
各システムへの繋ぎ込み
l  HDFS、HBaseへの書込み
    過去の資料料をご覧ください
l  Cloudera  Tokyo  2013
http://www.slideshare.net/cyberagent/cloudera-‐‑‒world-‐‑‒tokyo-‐‑‒2013
l  Hadoop  Conference  2013
http://www.slideshare.net/iijiji0314/flumeameba
l  ⾃自社開発のシステムへの接続
  SinkやInterceptorなどのモジュールを独⾃自に作り込んで接続
13
Kibana
l  ログを可視化してリアルタイムな状況把握、ログ検索索として問合せ対応に活⽤用
l  バックエンドは  Elastic  Search
14
l  Flume  ElasticSearch-‐‑‒Sink
l  Serializerをカスタマイズして
      アプリログ(JSON)のKeyValueをfieldに保存
l  Headerの値で下記を動的に決定  (FLUME-‐‑‒2273  ※)
    _̲index:%{service_̲name}-‐‑‒yyyy-‐‑‒MM-‐‑‒dd
    _̲type  :%{activity_̲type}
l  規模感
l  ESクラスタ  :VM×20台  /  8Core  /  Mem32G  /  HDD300G
l  ピーク時      :10,000  lines  /  sec
l  Indexサイズ:170G  /  day  
(直近20⽇日間ほど保持)
ElasticSearchへの書込み
※  1.5.2以降降のVersionでRelease予定
Elastic
Search
Flume
Agent
最近のApache  Flumeのリリース
16
1.5  Released
l  spillable  channel  (experimental)
l  メモリを超える分はDiskに書出してメモリ以上のcapacityを
扱えるMemoryChannel
l  Kite  dataset  sink  (experimental)
l  Kite  API経由でhdfsやHBaseに書き込める
l  ElasticSearch  HTTP  API  sink  
l  Much  faster  replay  in  the  FileChannel
最近のApache  Flume  (1)
17
1.4  Released(⼀一部抜粋)
l  Secure  SSL  transport  over  Avro
l  Avroのデータ転送の暗号化。グローバル経由の通信に使える
l  Thrift-‐‑‒RPC  as  a  transport  mechanism
l  Embedding  a  Flume  agent  within  apps
l  Ingesting  Avro-‐‑‒serializable  objects  via  log4j  API
l  JMS  source
l  ActiveMQなどからデータを流流し込める
最近のApache  Flume  (2)
18
最後に
l  運⽤用していての所感
l  ここ約1年年間で新たに発⽣生した問題はなく安定している
l  特にHDFSへの書込みやAvroでの転送はFlume1.5で
主なバグが直った印象
l  Flume本が12⽉月に出るようです
http://shop.oreilly.com/product/0636920030348.do
ご清聴ありがとうございました

More Related Content

Apache Flume 1.5を活⽤したAmebaにおけるログのシステム連携