Upgrade to Pro — share decks privately, control downloads, hide ads and more …

decode17

 decode17

分散並列処理の基本に関する解説と,分散並列処理のオープンソース界隈で最近起こっていることをまとめた資料です.

OZAWA Tsuyoshi

May 24, 2017
Tweet

More Decks by OZAWA Tsuyoshi

Other Decks in Programming

Transcript

  1. 2 Copyright©2017 NTT corp. All Rights Reserved. •小沢 健史(Ozawa Tsuyoshi)

    •Apache Hadoop Committer/PMC •Hadoop 徹底入門第2版 Chapter 22(YARN) •gihyo.jp “Hadoopはどのように動くのか” Hadoop,Tez,YARN 自己紹介
  2. 4 Copyright©2017 NTT corp. All Rights Reserved. •処理するデータがどんどん増える… •HDD からデータの読み込み

    → データ量に応じて時間がかかってしまう 困ったことはありませんか? 100MB 100GB 100TB 1秒 1000秒 (=約16分) 読み込みで1000000秒! (=約11日)
  3. 5 Copyright©2017 NTT corp. All Rights Reserved. •処理するデータがどんどん増える… •HDD からデータの読み込み

    → データ量に応じて時間がかかってしまう 困ったことはありませんか? 100MB 100GB 100TB 1秒 10000秒 (=1分半) 読み込みで1000000秒! (=約11日) そこで並列処理!
  4. 6 Copyright©2017 NTT corp. All Rights Reserved. •計算資源を並べることで速く処理すること •例 •HDD

    を10個並べる 並列処理 (Parallel processing) 100 MB/sec x 10個 = 最大1GB/sec
  5. 9 Copyright©2017 NTT corp. All Rights Reserved. 並列処理の注意どころ (1) 並列処理の効果は処理依存

    •ディスクI/Oの割合が 99% 99 1 1 1 効果:50倍 99倍 •ディスクI/Oの割合が 50% 50 50 0.5 99倍 50
  6. 10 Copyright©2017 NTT corp. All Rights Reserved. 並列処理の注意どころ (1) 並列処理の効果は処理依存

    •ディスクI/Oの割合が 99% 99 1 1 1 99倍 •ディスクI/Oの割合が 50% 50 50 0.5 効果:約2倍 99倍 50 効果:50倍
  7. 11 Copyright©2017 NTT corp. All Rights Reserved. 並列処理の注意どころ (2) 拡張性の限界

    •値段的限界 L4 L8 L16 L32 $0.5 $1 $2 $4 https://azure.microsoft.com/en- us/pricing/details/virtual-machines/windows/
  8. 12 Copyright©2017 NTT corp. All Rights Reserved. 並列処理の注意どころ (2) 拡張性の限界

    •値段的限界 •物理的限界 一台の計算機に足せる ドライブ数に限界 L4 L8 L16 L32 $0.5 $1 $2 $4 https://azure.microsoft.com/en- us/pricing/details/virtual-machines/windows/
  9. 19 Copyright©2017 NTT corp. All Rights Reserved. •複数の計算機をまたがって処理すること •目的は処理の高速化に限らない •例

    •異なる計算機2台に同じ計算をさせる → 故障しなかった方を採用 分散処理 (Distributed processing) 計算機1 計算機2 依頼主 投入
  10. 20 Copyright©2017 NTT corp. All Rights Reserved. •複数の計算機をまたがって処理すること •目的は処理の高速化に限らない •例

    •異なる計算機2台に同じ計算をさせる → 故障しなかった方を採用 分散処理 (Distributed processing) 計算機1 計算機2 故障 依頼主
  11. 21 Copyright©2017 NTT corp. All Rights Reserved. •複数の計算機をまたがって処理すること •目的は処理の高速化に限らない •例

    •異なる計算機2台に同じ計算をさせる → 故障しなかった方を採用 分散処理 (Distributed processing) 計算機1 計算機2 無事回答! 依頼主
  12. 23 Copyright©2017 NTT corp. All Rights Reserved. •データのコピーを複数持つ •目的 •データへアクセスできる確率を向上させるため

    •処理が無事に終わる確率を向上させるため 分散処理でよく行われること 計算機1 計算機2 書き手 保存しといて データ
  13. 24 Copyright©2017 NTT corp. All Rights Reserved. •データのコピーを複数持つ •目的 •データへアクセスできる確率を向上させるため

    •処理が無事に終わる確率を向上させるため 分散処理でよく行われること 計算機1 計算機2 書き手 コピー データ データ
  14. 25 Copyright©2017 NTT corp. All Rights Reserved. •データのコピーを複数持つ •目的 •データへアクセスできる確率を向上させるため

    •処理が無事に終わる確率を向上させるため 分散処理でよく行われること 計算機1 計算機2 データ データ
  15. 26 Copyright©2017 NTT corp. All Rights Reserved. •データのコピーを複数持つ •目的 •データへアクセスできる確率を向上させるため

    •処理が無事に終わる確率を向上させるため 分散処理でよく行われること 計算機1 計算機2 データ データ 故障
  16. 27 Copyright©2017 NTT corp. All Rights Reserved. •データのコピーを複数持つ •目的 •データへアクセスできる確率を向上させるため

    •処理が無事に終わる確率を向上させるため 分散処理でよく行われること 計算機1 計算機2 データ データ 読み手 読みたい
  17. 28 Copyright©2017 NTT corp. All Rights Reserved. •データのコピーを複数持つ •目的 •データへアクセスできる確率を向上させるため

    •処理が無事に終わる確率を向上させるため 分散処理でよく行われること 計算機1 計算機2 データ データ 読み手 成功! データ
  18. 29 Copyright©2017 NTT corp. All Rights Reserved. 分散処理の注意どころ (1) 分散のためにオーバヘッドが発生

    •1台にコピー •2台にコピー 通信量増大 書き手 計算機 書き手 計算機1 計算機2
  19. 36 Copyright©2017 NTT corp. All Rights Reserved. •故障時のエラーハンドリング 分散処理の注意どころ (2)

    計算機1 計算機2 データ 読み手 過負荷で アクセスできず 読込要求
  20. 37 Copyright©2017 NTT corp. All Rights Reserved. •故障時のエラーハンドリング 分散処理の注意どころ (2)

    計算機1 計算機2 データ 読み手 過負荷で アクセスできず データがないように 見える!
  21. 38 Copyright©2017 NTT corp. All Rights Reserved. •故障時のエラーハンドリング 分散処理の注意どころ (2)

    計算機1 計算機2 データ 読み手 過負荷で アクセスできず データがないように 見える! 自分でケアするのは大変
  22. 39 Copyright©2017 NTT corp. All Rights Reserved. •故障時のエラーハンドリング 分散処理の注意どころ (2)

    計算機1 計算機2 データ 読み手 過負荷で アクセスできず データがないように 見える! とても大変!
  23. 40 Copyright©2017 NTT corp. All Rights Reserved. •故障時のエラーハンドリング 分散処理の注意どころ (2)

    計算機1 計算機2 データ 読み手 過負荷で アクセスできず データがないように 見える! そこで 並列分散処理 基盤
  24. 42 Copyright©2017 NTT corp. All Rights Reserved. •データを溜めるファイルシステム データを処理する処理系 •Spark/MapReduce

    + HDFS など •データベース •SQL Server・Amazon Redshift など 最近の並列分散処理基盤 の組み合わせ
  25. 44 Copyright©2017 NTT corp. All Rights Reserved. なぜFSとDBは分かれているか? 大量のデータを永続的に格納する手段としては,(中略) OS

    により提供されるファイルがある. しかし,ファイルシステムには(中略)問題点があり,こ れらがデータベースの開発の動機となっている. データベースシステム・北川博之著 p.2-p.3 より抜粋
  26. 45 Copyright©2017 NTT corp. All Rights Reserved. なぜFSとDBは分かれているか? 大量のデータを永続的に格納する手段としては,(中略) OS

    により提供されるファイルがある. しかし,ファイルシステムには(中略)問題点があり,こ れらがデータベースの開発の動機となっている. データベースシステム・北川博之著 p.2-p.3 より抜粋 思想から異なる
  27. 51 Copyright©2017 NTT corp. All Rights Reserved. •処理系を柔軟に変更可能 •ファイルシステムの実装が変更可能に →

    クラウドとの相性良い Hadoop エコシステムで起きていること FileSystem API Spark HDFS MapReduce Azure Data Lake Store Amazon S3
  28. 54 Copyright©2017 NTT corp. All Rights Reserved. •処理系とファイルシステムが疎結合 →最適化度合いが限定的 ファイルシステムベースの処理系の欠点

    FileSystem API Spark HDFS MapReduce Azure Data Lake Store Amazon S3 最適化のために やりとりできる 情報が 限られる
  29. 61 Copyright©2017 NTT corp. All Rights Reserved. •基本は同じ •毎回も書き出さずに,Spark の世界の中で

    最適化されたデータ形式で保持が可能 Spark FileSystem API HDFS Azure Data Lake Store Amazon S3 Spark 結果 保持
  30. 62 Copyright©2017 NTT corp. All Rights Reserved. •基本は同じ •毎回も書き出さずに,Spark の世界の中で

    最適化されたデータ形式で保持が可能 •最終的には書出 Spark FileSystem API HDFS Azure Data Lake Store Amazon S3 Spark 書出
  31. 68 Copyright©2017 NTT corp. All Rights Reserved. •スキーマ(型情報)を予め定義し、それを 並列処理のヒント情報として利用 •分析用DBの場合、列数がかなり多い傾向(30以上)

    →列方向にデータを分割 必要な列のみにアクセス 分析用データベースの概要 userId username project … 1 Tsuyoshi Hadoop … 2 Neo Azure … … … … …
  32. 69 Copyright©2017 NTT corp. All Rights Reserved. •スキーマ(型情報)を予め定義し、それを 並列処理のヒント情報として利用 •分析用DBの場合、列数がかなり多い傾向(30以上)

    →列方向にデータを分割 必要な列のみにアクセス 分析用データベースの概要 userId username project … 1 Tsuyoshi Hadoop … 2 Neo Azure … … … … … 計算機1
  33. 70 Copyright©2017 NTT corp. All Rights Reserved. •スキーマ(型情報)を予め定義し、それを 並列処理のヒント情報として利用 •分析用DBの場合、列数がかなり多い傾向(30以上)

    →列方向にデータを分割 必要な列のみにアクセス 分析用データベースの概要 userId username project … 1 Tsuyoshi Hadoop … 2 Neo Azure … … … … … 計算機1 計算機2
  34. 72 Copyright©2017 NTT corp. All Rights Reserved. •スキーマが激しく変化する •クエリの変化が激しい →

    MapReduce や Spark など ファイルシステムベースの処理系 •スキーマ変化がまれ •性能要求が非常に高い •クエリがある程度決まっている → データベース FSベース処理系/データベースの使い分け
  35. 73 Copyright©2017 NTT corp. All Rights Reserved. •NTT DATA の例

    MapReduce/データベースの使い分け 秒 分 時間 日 Big Data Processing 応 答 時 間 Size Online Processing GB TB PB Online Batch Processing データ ベース 分析データベース Hadoop/ Spark Query & Search Processing Enterprise Batch Processing
  36. 80 Copyright©2017 NTT corp. All Rights Reserved. •深層学習を高速に動作させたい 処理速度に対する要求の多様化 インタラクティブ

    クエリ系 • Apache Impala • Presto • Hive(LLAP) 深層学習特化 • TensorFlow • MXNet • CNTK • Chainer
  37. 81 Copyright©2017 NTT corp. All Rights Reserved. •バッチではなく,ストリーミング処理を 高速に動作させたい 処理速度に対する要求の多様化

    インタラクティブ クエリ系 • Apache Impala • Presto • Hive(LLAP) 深層学習特化 • TensorFlow • MXNet • CNTK • Chainer ストリーミング 処理系 • Apache Storm • Spark Streaming
  38. 82 Copyright©2017 NTT corp. All Rights Reserved. •ワークロードによる使い分けが普通に 処理速度に対する要求の多様化 インタラクティブ

    クエリ系 • Apache Impala • Presto • Hive(LLAP) 深層学習特化 • TensorFlow • MXNet • CNTK • Chainer ストリーミング 処理系 • Apache Storm • Spark Streaming
  39. 83 Copyright©2017 NTT corp. All Rights Reserved. •ワークロードによる使い分けが普通に 処理速度に対する要求の多様化 インタラクティブ

    クエリ系 • Apache Impala • Presto • Hive(LLAP) 深層学習特化 • TensorFlow • MXNet • CNTK ストリーミング 処理系 • Apache Storm • Spark Streaming データ同期が 大変に…
  40. 91 Copyright©2017 NTT corp. All Rights Reserved. •並列処理 •分散処理 •MapReduce系統の処理の特徴

    •データベースの特徴 •最近の動向 まとめ 分散並列処理が身近に なってきた
  41. 92 Copyright©2017 NTT corp. All Rights Reserved. •並列処理 •分散処理 •MapReduce系統の処理の特徴

    •データベースの特徴 •最近の動向 まとめ 何が何でも 分散処理?
  42. 93 Copyright©2017 NTT corp. All Rights Reserved. •並列処理 •分散処理 •MapReduce系統の処理の特徴

    •データベースの特徴 •最近の動向 まとめ 何が何でも 分散処理?
  43. 94 Copyright©2017 NTT corp. All Rights Reserved. •並列処理 •分散処理 •MapReduce系統の処理の特徴

    •データベースの特徴 •最近の動向 まとめ 効果が出るかは 問題次第
  44. 95 Copyright©2017 NTT corp. All Rights Reserved. •並列処理 •分散処理 •MapReduce系統の処理の特徴

    •データベースの特徴 •最近の動向 まとめ 上手く使いこなして ビジネスの役に 立ててください
  45. 96 Copyright©2017 NTT corp. All Rights Reserved. •並列処理 •分散処理 •MapReduce系統の処理の特徴

    •データベースの特徴 •最近の動向 まとめ エンジニアの みなさまの力量に かかっています!