「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
Apache Hadoopは
アーキテクチャ †
Hadoopは、以下の4つのモジュールによって構成されている。
Hadoop Common †
他のモジュールから共通して利用されるライブラリ群。
Hadoop Distributed File System (HDFS) †
HDFS:Hadoop独自の分散ファイル・システム。
- 大きなファイルを複数のブロック単位(デフォルトで128MB)に分割して、それらを複数のノードにまたがり格納する。
- そのブロックの複製(レプリカ)を複数の異なるノードに格納することで信頼性を確保している。そのため、各ホストはRAIDを必要としない。
- 通常のOSにマウントできないことは制限のひとつであったが、Hadoop 2.2以降のバージョンではNFSv3マウントに対応している。
NameNode? †
マスターの役割を担当する。
- HDFSに関するメタ情報(ファイルとブロックの対応関係など)を保持し、各DataNodeが実データをブロック単位で保持する。
- 任意のDataNodeが故障した場合は、自動でそれを検知し、故障したDataNodeの保持ブロックを別のDataNodeから参照するよう命令する。
- このようにしてDataNodeが故障した場合も自動的にレプリケーション数が維持されるため、DataNodeが故障してもサービスに影響は発生しない。
- 単一障害点であったが、Hadoop 2.2でHA機能が実装されたため単一障害点ではなくなった。
DataNode? †
スレーブの役割を担当する。
- レプリケーション数のデフォルトは3で、この場合、2つのデータを同じラック内のノードに、残り1つを異なるラック内のノードに保存する。
- 数1000台規模までスケールアウト可能。その場合、数10PB規模のデータを格納できる。
Hadoop Yet Another Resource Negotiator (YARN) †
Hadoopクラスタのリソース管理、ジョブスケジューリングを担当。Hadoop 2.2から利用可能。
課題 †
- リソース管理の効率化
- Hadoop 1系までのMapReduceエンジンにおけるスレーブ(TaskTracker)ではMapタスク用、
Reduceタスク用にそれぞれスロットが用意されており、そこにMapReduceの各タスクが割り当てられる。
- ここで、Mapタスク用のスロットに空きがない場合は、Reduceタスク用のスロットに空きがあったとしても
Mapタスクをこれ以上割り当てることができず、TaskTrackerのリソース使用率が低下する問題があった。
機能 †
Hadoop 1系までのMapReduceからクラスタのリソース管理、ジョブスケジューリングを分離したもの。
などの様々な分散処理フレームワークが動作する。
Hadoop MapReduce? †
- MapReduceの実装。
- 可能な限り入力データを保持するDataNodeと同一ノードでMapタスクが実行されるようにスケジューリングされる。
- これにより、大規模データ処理においてもネットワークの負荷を抑えることが可能である。
ファイル・システム †
HDFS以外のファイル・システムもサポートしている。
- Amazon Simple Storage Service (S3)
- OpenStack? Swift
- Microsoft Azure
- FTP、HTTP、およびHTTPS経由でアクセス可能なファイル・システム
MRv1 †
MapReduceエンジンはひとつのJobTrackerを持ち、クライアントはこのJobTrackerに向けてMapReduceジョブを投入する。
MRv2 †
JobTracker? †
旧マスタ(リソース管理、ジョブスケジューリング)ノード
TaskTracker? †
旧スレーブ(割り当てられた処理の実行)ノード
- TaskTrackerが停止するか、実行中のタスクがタイムアウトすると、その部分のタスクは再スケジュールされる。
ResourceManager? †
投入されたMapReduceジョブを管理するノード。
NodeManager? †
ApplicationMaster? †
MapReduceを含む各アプリケーション用にそれぞれ専用のApplicationMaster?が実行される。
- Mapタスク、Reduceタスクの割り当てやタスクの進捗管理を担当する。
- 必要なリソースは都度ResourceManagerに問合せ払い出してもらう。
エコシステム †
分散処理フレームワーク †
分散処理エンジン †
分散ストリーム処理 †
DWH、データストア †
HBase、Kudu(データストア) †
ノーチラス・テクノロジーズが開発した、
Hadoop用の開発・運用フレームワーク。
歴史 †
参考 †
参考 †
MapReduce? †
Google File System(GFS) †
gihyo.jp … 技術評論社 †
Hadoopはどのように動くのか †
- Hadoopの設計と実装
~並列データ処理系Hadoop MapReduce?