More Related Content
More from NTT DATA OSS Professional Services (20)
NTTデータにおける Apache Spark への取り組み
- 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. 3Copyright © 2013 NTT DATA Corporation
Apache Spark とは
Spark Summit 2014 レポートと Spark の最新動向
NTTデータにおける Apache Spark への取り組み
アジェンダ
- 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. 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. 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. 8Copyright © 2013 NTT DATA Corporation
Sparkは繰り返し処理を高速に実現
Generated
Data
Output
Output
Data
分散ファイルシステム HDFS
バッチ処理
MapReduce
インメモリ分散処理
Spark
リソース制御:YARN
繰り返し処理にHadoopとSparkを組み合わせるイメージ
大きなデータをMapReduceで加工
データがメモリ上に置かれるため
レスポンスに優れる
Spark内の処理イメージ
データ
同じデータを
繰り返し処理
データ データ データ
変換処理を連続で適用
HDFS上の
データを利用
小処理をつなげて
大処理を実現
メモリ メモリ
- 9. 9Copyright © 2013 NTT DATA Corporation
JavaやScalaのコレクション操作のようなメソッドやフレームワークを利用できるため、
JavaやScalaに慣れた技術者にとって、複雑な処理を実装しやすい
Hadoopを置き換えるものではなく、SparkはHadoopの仕組みも利用する
利用例
ログ分析: POSデータ解析、トラヒック解析、M2M、行動履歴、ライフログ長期保存 など
レコメンド: クリック・ストリーム分析、関係グラフ解析、広告分析 など
検索: 非構造データの検索、データ抽出
データマイニング: 取引情報の分析・監査、不整データの抽出など
機械学習: 大量データのパターン分析、分類など
Sparkは大量データを次々に変換する処理が得意
得意 苦手
Hadoopで加工した後のドリルダウン分析
TB級までのデータを扱うシステム
サンプリングが有効でないロングテールの
データ分析
数秒~数分級のHadoopよりも短い
レスポンスが必要な処理
クラスタ全体のメモリに乗り切らない
巨大なデータ処理(TB級以上)
大きなデータセットを少しずつ更新する処理
秒以下の特に短いレスポンスが必要な処理
- 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. 11Copyright © 2013 NTT DATA Corporation
互いの得意分野が少しずつ異なる
バッチ処理では間に合わないような
速報値を必要とするケースで、かつ1
台のサーバでは処理できない量の
データに対応する必要があるケース
でStormを採用する
Storm
ストリーム並列処理基盤
Hadoop
バッチ並列処理基盤
Spark
インメモリ並列処理基盤
PostgreSQL
RDBMS
1台のサーバによる
少量のレコードに対する処
理・管理 (e.g. インデックス
スキャン、レコード単位の更
新)
複数台サーバによる
大量のデータに対する
蓄積・処理が得意
ディスク上での
データ処理
メモリ上での
データ処理
データを蓄積した上
でバッチ処理
入力される各レコード
に対する逐次処理
1台のサーバ内
での処理
複数台サー
バでの処理
メモリ上で
データを保持し
て処理
データを保持・蓄
積せずに処理
並列分散処理
ユーザアカウント情報の管理
(1サーバで扱えて、厳密性を要
求される情報を管理する) ユーザ行動の即時処理
異常行動の検知
ユーザのページ遷移や行動履歴の分析
インタラクティブなデータ処理
例えば「ユーザ情報」という枠で考えると…
データクレンジング
蓄積データの全件処理
(総メモリに乗り切らない処理)
- 12. 12Copyright © 2013 NTT DATA Corporation
Apache Spark をコア機能として、SQL、機械学習、ストリー
ム処理、グラフ処理の各種インターフェースを提供し、Spark
独自のエコシステムを形成
Spark エコシステム
インメモリ分散処理
Apache Spark
SQL
SparkSQL
機械学習
MLLib
ストリーム処理
Spark
Streaming
グラフ
GraphX
- 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. Copyright © 2013 NTT DATA Corporation 14
Spark Summit 2014 レポートと Spark の最新動向
- 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. 16Copyright © 2013 NTT DATA Corporation
Apache Software Foundation のプロジェクトの中で Top 3
に入るほど活発
Spark 独自のエコシステムを形成し、ビッグデータ活用のた
めの標準ライブラリを目指す
Spark の開発状況と方向性
(出典: Spark Summit 2014 keynote)
- 17. 17Copyright © 2013 NTT DATA Corporation
前回カンファレンスよりも充実、エコシステムの活用も
Spark の利用事例
企業 概要
Spotify 協調フィルタリングによる音楽のリコメンデーション
Yahoo!Taiwan データ基盤を統合し、BI(レポーティング)と機械学習(レコメ
ンデーション)を統合、Shark や MLlib を活用し、SparkSQL
も利用を検討
Telefonica サイバーセキュリティ対策のためのデータ分析基盤
SKTelecom 商用MPP DBのSparkへの置き換え。SparkStreamingによ
るリアルタイムデータ処理
Ooyala ビデオ配信に関するアクセスログのSparkStreamingによる
分析ビデオ配信に関するアクセスログのSparkStreamingに
よる分析
- 19. 19Copyright © 2013 NTT DATA Corporation
既存のHadoopクラスタのリソースを有効活用したい
Hadoopは手堅くスケーラビリティを得られる分散処理基盤とし
て地位が確立されており、継続して活用を続ける
Hadoop と Spark を適材適所で組み合わせて利用
Hadoop の動向 → “YARN” にも着目
NTTデータにおける Apache Spark への取り組み
- 20. 20Copyright © 2013 NTT DATA Corporation
YARN : 並列分散処理フレームワークからリソース制御のレイヤを切り出した
Hadoopの動向 ~YARNの登場~
分散ファイルシステム
HDFS
バッチ処理
MapReduce
従来のHadoop
分散ファイルシステム
HDFS
バッチ処理
MapReduce
これからのHadoop
リソース制御
YARN
- 21. 21Copyright © 2013 NTT DATA Corporation
YARN により単一クラスタ内に複数の分散処理アーキテクチャを同居可能に
Hadoopの動向~YARN上の処理アーキテクチャ~
分散ファイルシステム
HDFS
バッチ処理
MapReduce
リソース制御
YARN
ストリーム処理
Storm
インメモリ分散処理
Spark
・・・・・・
- 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. 23Copyright © 2013 NTT DATA Corporation
約200台のクラスタの Spark on YARN 環境で検証を実施
クラスタ全体のメモリサイズを超えるデータ量に対する検証も
大規模な Spark 検証の実施
Spark Summit 2014 / Hadoop Conference Japan 2014
- 24. 24Copyright © 2013 NTT DATA Corporation
Sparkへの取り組みを通じて発見した課題を随時コミュニティ
に報告、修正パッチを提供
リリースマネージャをつとめる Patrick Wendell 氏を交えて、
Spark への希望や改善提案を議論
Spark コミュニティでの活動と主要開発者との意見交換
- 25. 25Copyright © 2013 NTT DATA Corporation
Spark はメモリ上で処理を得意とする並列分散処理基盤
Hadoop がディスクI/Oを伴いながら、スケーラビリティを追究し
たのと比較
Spark エコシステムが充実:SQL、機械学習、ストリーム処理、
グラフ処理のインターフェースを備える
NTTデータは Spark への取り組みを加速
Spark on YARN
コミュニティと連携しながら運用面での改善を実施
まとめ
- 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