NTTデータにおける Apache Spark への取り組み

6,132 views
5,689 views

Published on

オープンソースカンファレンス 2014 Kansai@Kyoto 講演資料(2014/08/02)

■NTTデータにおける Apache Spark への取り組み
下垣 徹 (NTTデータ 基盤システム事業本部 システム方式技術事業部)
https://www.ospn.jp/osc2014-kyoto/modules/eguide/event.php?eid=51

Published in: Technology
0 Comments
38 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,132
On SlideShare
0
From Embeds
0
Number of Embeds
364
Actions
Shares
0
Downloads
0
Comments
0
Likes
38
Embeds 0
No embeds

No notes for slide

NTTデータにおける Apache Spark への取り組み

  1. 1. NTTデータにおける Apache Spark への取り組み 2014/08/02 (株) NTTデータ 基盤システム事業本部 下垣 徹 オープンソースカンファレンス2014 Kansai@Kyoto
  2. 2. 2Copyright © 2013 NTT DATA Corporation  “The Elephant Wizard” NTTデータ OSSプロフェッショナルサービス の一員 OSSのRDBMS “PostgreSQL” の開発・導入 大量データの蓄積・処理に “Hadoop” 自己紹介:下垣 徹 (しもがき とおる) Co-Author 2nd Edition in Japan 10+ years Contributor Ex. pg_bulkload 6+ years Leads Japanese Hadoop Community
  3. 3. 3Copyright © 2013 NTT DATA Corporation  Apache Spark とは  Spark Summit 2014 レポートと Spark の最新動向  NTTデータにおける Apache Spark への取り組み アジェンダ
  4. 4. Copyright © 2013 NTT DATA Corporation 4 Apache Spark とは
  5. 5. 5Copyright © 2013 NTT DATA Corporation  大規模データの分散処理をオンメモリで実現する データ処理してHDDに都度書き出す方式よりも高速 JavaやScalaのコレクション操作のような使い方で 分散処理を実現できる  大規模データの分散処理ではHadoopが有名だが、 Hadoopとは異なるアイデア・方法でデータ処理を実現する UCBerkeleyのResilient distributed datasets(RDD)の 論文がおおもと Sparkとはオンメモリデータ処理の分散処理基盤 Hadoopとよく比較されるが、 アーキテクチャが全く異なる 最新バージョン「Spark 1.0.1」 (2014/7/11 リリース) メモリ上に分散した 変換処理に適したデータセット
  6. 6. 6Copyright © 2013 NTT DATA Corporation HadoopはディスクIOを並列化してスループット高める • 集中管理型の分散システム – 分散処理ジョブやデータの管理は マスタサーバで実施 – スレーブサーバは、分散処理の 実行やデータの実体を保存 • スレーブサーバを増やすことで、 全体の処理性能を向上させる スケールアウトアーキテクチャ Hadoopマスタサーバ Hadoopクライアント L2/L3スイッチ NameNode JobTracker L2スイッチ Hadoopスレーブサーバ群 DataNode TaskTracker DataNode TaskTracker DataNode TaskTracker DataNode TaskTracker DataNode TaskTracker ディスク ディスク ディスク ディスク ディスク ディスクIOの並列化 レプリケーションによる永続化
  7. 7. 7Copyright © 2013 NTT DATA Corporation  機械学習のような繰り返し処理に MapReduce を適用する上での問題点  MapReduce の起動に時間がかかる (最低でも 15 秒)  処理途中でディスクへの書き込みが発生する - 処理開始時に HDFS からデータを読み込み、処理終了時に HDFS に書き込む - 中間処理で、処理結果をローカルディスクに書き込む  Spark ではディスクI/Oを減らすように動作することで高速化を狙う なぜSparkなのか? Map Map Map Reduce Reduce HDFS HDFS MapReduceでディスクI/Oが発生する箇所 → Spark では Shuffle 以外の箇所で発生するディスク I/O を極力起こさないように動作する Shuffle
  8. 8. 8Copyright © 2013 NTT DATA Corporation Sparkは繰り返し処理を高速に実現 Generated Data Output Output Data 分散ファイルシステム HDFS バッチ処理 MapReduce インメモリ分散処理 Spark リソース制御:YARN 繰り返し処理にHadoopとSparkを組み合わせるイメージ 大きなデータをMapReduceで加工 データがメモリ上に置かれるため レスポンスに優れる Spark内の処理イメージ データ 同じデータを 繰り返し処理 データ データ データ 変換処理を連続で適用 HDFS上の データを利用 小処理をつなげて 大処理を実現 メモリ メモリ
  9. 9. 9Copyright © 2013 NTT DATA Corporation  JavaやScalaのコレクション操作のようなメソッドやフレームワークを利用できるため、 JavaやScalaに慣れた技術者にとって、複雑な処理を実装しやすい  Hadoopを置き換えるものではなく、SparkはHadoopの仕組みも利用する  利用例  ログ分析: POSデータ解析、トラヒック解析、M2M、行動履歴、ライフログ長期保存 など  レコメンド: クリック・ストリーム分析、関係グラフ解析、広告分析 など  検索: 非構造データの検索、データ抽出  データマイニング: 取引情報の分析・監査、不整データの抽出など  機械学習: 大量データのパターン分析、分類など Sparkは大量データを次々に変換する処理が得意 得意 苦手  Hadoopで加工した後のドリルダウン分析  TB級までのデータを扱うシステム  サンプリングが有効でないロングテールの データ分析  数秒~数分級のHadoopよりも短い レスポンスが必要な処理  クラスタ全体のメモリに乗り切らない 巨大なデータ処理(TB級以上)  大きなデータセットを少しずつ更新する処理  秒以下の特に短いレスポンスが必要な処理
  10. 10. 10Copyright © 2013 NTT DATA Corporation Hadoopなどを含むエコシステムで成り立つ • Spark : イテレーションや多段MapReduceを効率的に実行するインメモリ分散処理基盤 バッチ処理では間に合わないような 速報値を必要とするケースで、かつ1 台のサーバでは処理できない量の データに対応する必要があるケース でStormを採用する Storm ストリーム並列処理基盤 Hadoop バッチ並列処理基盤 Spark インメモリ並列処理基盤 イテレーションを回したり ピボット処理を行うようなインメモリで の処理を必要とする場合、従来は RDBMSで扱えるデータサイズにまで 減らしてから処理していた PostgreSQL RDBMS Oracle Coherence や SAP HANA の ような高価な商用製品でしか実現でき なかったインメモリでの並列分散処理 がIAサーバ+OSSで実現可能になる 1台のサーバによる 少量のレコードに対する処 理・管理 (e.g. インデックス スキャン、レコード単位の更 新) 複数台サーバによる 大量のデータに対する 蓄積・処理が得意 ディスク上での データ処理 メモリ上での データ処理 データを蓄積した上 でバッチ処理 入力される各レコード に対する逐次処理 1台のサーバ内 での処理 複数台サー バでの処理 メモリ上で データを保持し て処理 データを保持・蓄 積せずに処理 並列分散処理
  11. 11. 11Copyright © 2013 NTT DATA Corporation 互いの得意分野が少しずつ異なる バッチ処理では間に合わないような 速報値を必要とするケースで、かつ1 台のサーバでは処理できない量の データに対応する必要があるケース でStormを採用する Storm ストリーム並列処理基盤 Hadoop バッチ並列処理基盤 Spark インメモリ並列処理基盤 PostgreSQL RDBMS 1台のサーバによる 少量のレコードに対する処 理・管理 (e.g. インデックス スキャン、レコード単位の更 新) 複数台サーバによる 大量のデータに対する 蓄積・処理が得意 ディスク上での データ処理 メモリ上での データ処理 データを蓄積した上 でバッチ処理 入力される各レコード に対する逐次処理 1台のサーバ内 での処理 複数台サー バでの処理 メモリ上で データを保持し て処理 データを保持・蓄 積せずに処理 並列分散処理 ユーザアカウント情報の管理 (1サーバで扱えて、厳密性を要 求される情報を管理する) ユーザ行動の即時処理 異常行動の検知 ユーザのページ遷移や行動履歴の分析 インタラクティブなデータ処理 例えば「ユーザ情報」という枠で考えると… データクレンジング 蓄積データの全件処理 (総メモリに乗り切らない処理)
  12. 12. 12Copyright © 2013 NTT DATA Corporation  Apache Spark をコア機能として、SQL、機械学習、ストリー ム処理、グラフ処理の各種インターフェースを提供し、Spark 独自のエコシステムを形成 Spark エコシステム インメモリ分散処理 Apache Spark SQL SparkSQL 機械学習 MLLib ストリーム処理 Spark Streaming グラフ GraphX
  13. 13. 13Copyright © 2013 NTT DATA Corporation  2009年:  UC Berkley AMPLab にて研究プロジェクトがスタート  2012年:  AMP Camp 1  2013年: 急速に動きが活発化  6/19 Apache Incubation Project  8月 AMP Camp 2  10/27 AMPLab から Databrics 社設立  12/2 Spark Summit 2013 開催  2014年:  3/30 Spark 1.0.0 リリース  6/30 Spark Summit 2014 開催  7/11 Spark 1.0.1 リリース Spark の歴史 Spark Summit 2013 の様子
  14. 14. Copyright © 2013 NTT DATA Corporation 14 Spark Summit 2014 レポートと Spark の最新動向
  15. 15. 15Copyright © 2013 NTT DATA Corporation  今回が2回目の開催となる Spark Summit  The Westin St. Francis San Francisco on Union Square  前回の開催が 2013年12月であり、わずか半年後に2回目が開催  参加者は1000人以上  前回の400人を大きく上回った。  受付の行列は非常に長く、カンファレンス開始直前から大混雑であり会場はやや手狭にさ え感じられた。 Spark Summit 2014
  16. 16. 16Copyright © 2013 NTT DATA Corporation  Apache Software Foundation のプロジェクトの中で Top 3 に入るほど活発  Spark 独自のエコシステムを形成し、ビッグデータ活用のた めの標準ライブラリを目指す Spark の開発状況と方向性 (出典: Spark Summit 2014 keynote)
  17. 17. 17Copyright © 2013 NTT DATA Corporation  前回カンファレンスよりも充実、エコシステムの活用も Spark の利用事例 企業 概要 Spotify 協調フィルタリングによる音楽のリコメンデーション Yahoo!Taiwan データ基盤を統合し、BI(レポーティング)と機械学習(レコメ ンデーション)を統合、Shark や MLlib を活用し、SparkSQL も利用を検討 Telefonica サイバーセキュリティ対策のためのデータ分析基盤 SKTelecom 商用MPP DBのSparkへの置き換え。SparkStreamingによ るリアルタイムデータ処理 Ooyala ビデオ配信に関するアクセスログのSparkStreamingによる 分析ビデオ配信に関するアクセスログのSparkStreamingに よる分析
  18. 18. Copyright © 2013 NTT DATA Corporation 18 NTTデータにおける Apache Spark への取り組み
  19. 19. 19Copyright © 2013 NTT DATA Corporation  既存のHadoopクラスタのリソースを有効活用したい Hadoopは手堅くスケーラビリティを得られる分散処理基盤とし て地位が確立されており、継続して活用を続ける  Hadoop と Spark を適材適所で組み合わせて利用  Hadoop の動向 → “YARN” にも着目 NTTデータにおける Apache Spark への取り組み
  20. 20. 20Copyright © 2013 NTT DATA Corporation  YARN : 並列分散処理フレームワークからリソース制御のレイヤを切り出した Hadoopの動向 ~YARNの登場~ 分散ファイルシステム HDFS バッチ処理 MapReduce 従来のHadoop 分散ファイルシステム HDFS バッチ処理 MapReduce これからのHadoop リソース制御 YARN
  21. 21. 21Copyright © 2013 NTT DATA Corporation  YARN により単一クラスタ内に複数の分散処理アーキテクチャを同居可能に Hadoopの動向~YARN上の処理アーキテクチャ~ 分散ファイルシステム HDFS バッチ処理 MapReduce リソース制御 YARN ストリーム処理 Storm インメモリ分散処理 Spark ・・・・・・
  22. 22. 22Copyright © 2013 NTT DATA Corporation  Spark の活用に加えて YARN の活用もあわせて行う 用途別の複数クラスタやDBMS/MPP-DBMSの並立から、デー タストアを共有したハイブリッドな統合処理基盤の実現 従来の MapReduce 処理も活かしながら、他の処理基盤の追 加を後から行うことが可能に NTTデータでの Spark への取り組み 分散ファイルシステム HDFS バッチ Map Reduce SQL Hive リソース管理機構 YARN インメモリ分散処理 Apache Spark SQL SparkSQL 機械学習 MLLib グラフ GraphX ストリーム Spark Streaming
  23. 23. 23Copyright © 2013 NTT DATA Corporation  約200台のクラスタの Spark on YARN 環境で検証を実施  クラスタ全体のメモリサイズを超えるデータ量に対する検証も 大規模な Spark 検証の実施 Spark Summit 2014 / Hadoop Conference Japan 2014
  24. 24. 24Copyright © 2013 NTT DATA Corporation  Sparkへの取り組みを通じて発見した課題を随時コミュニティ に報告、修正パッチを提供  リリースマネージャをつとめる Patrick Wendell 氏を交えて、 Spark への希望や改善提案を議論 Spark コミュニティでの活動と主要開発者との意見交換
  25. 25. 25Copyright © 2013 NTT DATA Corporation  Spark はメモリ上で処理を得意とする並列分散処理基盤 Hadoop がディスクI/Oを伴いながら、スケーラビリティを追究し たのと比較  Spark エコシステムが充実:SQL、機械学習、ストリーム処理、 グラフ処理のインターフェースを備える  NTTデータは Spark への取り組みを加速 Spark on YARN コミュニティと連携しながら運用面での改善を実施 まとめ
  26. 26. Copyright © 2011 NTT DATA Corporation Copyright © 2013 NTT DATA Corporation お問い合わせ先: 株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス URL: http://oss.nttdata.co.jp/hadoop メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496

×