Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,555 views

Published on

Hadoop Conference Japan 2014 CyberAgent

Published in: Technology

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

  1. 1. Apache  Flume  1.5  を活⽤用した Amebaにおけるログのシステム連携 アメーバ事業本部 Ameba  Technology  Laboratory 飯島  賢志 2014.07.08
  2. 2. 2 本⽇日の内容 株式会社サイバーエージェント l Apache  Flumeについて l Flumeを使ったログのシステム連携 l 最近のApache  FlumeのRelease
  3. 3. 3 株式会社サイバーエージェント ⾃自⼰己紹介 ●  飯島    賢志 ●  (株)サイバーエージェント     Ameba  Technology  Laboratory ●  Hadoop/Hiveを⽤用いたログ解析基盤の運⽤用     AmebaサービスのFlumeの運⽤用 い  い  じ  ま    さ  と  し
  4. 4. Apache  Flumeについて
  5. 5. 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. 6. 6 l  転送の分岐/統合など柔軟なルーティングができる l  ⾼高い信頼性 もしホストごと落落ちても復復旧させればデータロスしない (File  Channel使⽤用時) l  HDFS,  HBaseへの書込みは特に機能が充実 l  各Component(Sink,  Intereptorなど)は部品化されていて 独⾃自のものを開発しやすい l  Avro-‐‑‒RPCで圧縮して転送できる Flumeの特徴など
  7. 7. Flumeを使ったログのシステム連携 in  Ameba
  8. 8. 8 株式会社サイバーエージェント ログ転送システム構成 Hadoop Ameba サービス Ameba サービス Ameba サービス Aggre gator Flume Aggregator Aggre gator HBase ストリーム処理理 (Onix) Recommend システムログ監視 システム 統合・分岐しつつ各システムに絶えずログ転送 ストリーム処理理 (HBase  sink) Elastic Search バッチ処理理
  9. 9. 9 Amebaにおけるログ転送 l  導⼊入ホスト数   :  1,600  host l  ピーク時         :  140,000  lines  /  sec l  サイズ            :  2.0  TB  /  day(Raw) l  トラフィック      :  80Mbps  (Compressed)
  10. 10. 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. 11. 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. 12. 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. 13. 13 Kibana l  ログを可視化してリアルタイムな状況把握、ログ検索索として問合せ対応に活⽤用 l  バックエンドは  Elastic  Search
  14. 14. 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
  15. 15. 最近のApache  Flumeのリリース
  16. 16. 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. 17. 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. 18. 18 最後に l  運⽤用していての所感 l  ここ約1年年間で新たに発⽣生した問題はなく安定している l  特にHDFSへの書込みやAvroでの転送はFlume1.5で 主なバグが直った印象 l  Flume本が12⽉月に出るようです http://shop.oreilly.com/product/0636920030348.do
  19. 19. ご清聴ありがとうございました

×