「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
分散処理(分散コンピューティング)とは、
- 複雑な計算などをネットワークを介して複数のコンピュータを利用して行うことで、
- スループットを上げようとする取り組み、またはそれを実現する為の仕組み。
詳細 †
- 基本的には1990年代までの並列データベースの技術に基づいた並列データ処理系
- ハードウェアの高性能化や新たな需要を踏まえ,その中核をなす技術は少しずつ進展を遂げつつある。
基礎 †
アーキテクチャ †
無共有型のアーキテクチャが主流である。
- アーキテクチャのタイプ
- 共有メモリ型(シェアード・メモリ)
- 共有ディスク型(シェアード・ディスク)
- 無共有型(シェアード・ナッシング)
- 単一ハードウェアコンポーネントにおけるレイテンシ低減の停滞のため、
複数のハードウェアコンポーネントを効率的に活用する方向にシフトしている。
- 複数のコモディティサーバを高速なネットワークで接続した無共有型のクラスタシステムが
昨今のビッグデータ解析においては,価格性能比の点から,後者が広く利用されつつある。
並列性 †
- 問い合わせ間の並列性(Inter-query Parallelism)
複数の異なる問い合わせを並列に実行するときの並列性
- 問い合わせ内の並列性(Intra-query Parallelism)
1つの問い合わせを並列に実行可能な複数の
サブタスクに分解して実行するときの並列性
- オペレータ間の並列性(Inter-operator Parallelism)
問い合わせにおける複数の異なるオペレータを並列に実行するときの並列性
- パイプライン並列性(Pipelined Parallelism)
あるオペレータが出力するデータを
別のあるオペレータが入力する場合において,
これらのオペレータを並列に実行するときの並列性
- 独立並列性(Independent Parallelism)
データの依存関係がない複数の独立したオペレータを並列に実行するときの並列性
- オペレータ内の並列性(Intra-operator Parallelism)
1つのオペレータを並列実行可能な複数のサブタスクに分解して実行するときの並列性
- パーティション並列性(Partitioned Parallelism)
データを複数にパーティショニングし,
オペレータの複数のインスタンスが当該パーティションを
並列に読み出すことにより,オペレータ内の並列性を活用する。
ストア †
データ・ストア、ディスクか?メモリか?
ディスク †
Hadoop の Hadoop Distributed File System (HDFS)
メモリ †
Apache Spark の Resilient Distributed Dataset (RDD)
その他 †
- NoSQL
SparkとCassandraなんて組み合わせもある模様。
処理 †
どのような処理を実行できるか?
分散(バッチ) †
得意とするストレージによってフレームワークが異なる感じ。
※ Hadoop MapReduceは他の分散エンジンの隆盛によってフェードアウト気味らしいが、
Hadoop や Hadoop Distributed File System (HDFS) は進化しつつあるらしい。
ストリーム †
- CEP(complex event processing)とも言う。
分散(バッチ) + ストリームみたいな組み合わせ。
本質 †
可視化 †
- 可視化が目的の場合、
以下のような流れで処理を行う。
- ストリーム
- データ収集
- エンリッチメント
- 分散(バッチ)
- 蓄積
- 可視化
予測 †
最適化 †
目的 †
ビジネス上の目的の例。
... †
プロダクト †
分散(バッチ)系 †
HDFSを使ったビッグデータの分散処理のプロダクト。
ビッグデータの分散処理のプロダクト。
ストリーム系 †
ビッグデータのストリーム処理のプロダクト
ビッグデータのストリーム処理のプロダクト
※ Apache Stormとの違いはリンク先参照を。
EAI/ETL系のデータフロー・オーケストレーション・ツールだが、
ビッグデータのコンテキストでデータ収集+エンリッチメント役割を担う。
処理性能を重視したメッセージキュー
- 複数台のマシンでクラスタを構成
- 分散処理により高いスループットを発揮
目的別 †
- ビッグデータの可視化のプロダクト
- データはドキュメントで、全文検索処理を行う。
- ストレージにHadoopを使えるので分散処理系に分類
- Elastic Stackという推奨構成がある。
バッチアプリケーションを開発するための包括的なフレームワーク
参考 †
@IT †
- Amazon EMRで構築するApache Spark超入門
Think IT †
Qiita †
NTTデータ †
システム技術本部 †
先端技術株式会社 †