Hadoop(ハドゥープ)は大規模データの蓄積、加工を分散して処理するフレームワークです。
大規模データを処理するために、従来はデータウェアハウスなど専用の製品を使う必要がありました。
しかし、これらは非常に高価で、システムのスケールアップにも限界があります。
Hadoopはこのようなデータ処理を、一般的なサーバマシンを複数つなげ合わせる(スケールアウト)ことで実現し、
増え続けるデータ量に対して、処理性能を維持することが可能なシステムです。
Hadoopシステムは複数台に分散していることでシステムの柔軟性を高めています。
一般的なサーバマシン群から構成できるため、ハードウェアの調達が容易です。
また1台のサーバに障害が発生しても他のサーバでシステムの継続が可能です。
処理性能を向上させたい場合には、Hadoopクラスタにサーバを追加するだけで済みます。
このような特徴から、耐障害性と処理性能を兼ね備えたシステムといえます。
Hadoopは2系以降、以下の4つのCoreモジュールから成り立っています。
Hadoopの分散ファイルシステムです。
ユーザからは1つの大きなファイルシステムとして見えますが、各ノードにまたがってファイルを保存しています。
1つのノードに障害が起こってもデータの欠損が無いように、デフォルトで3つのノードに同じデータを保持(3重化)しています。
HDFSに保存されたデータに対して、並列分散的に処理を実行するためのフレームワークです。
MapReduceの分散処理はMapフェーズとReduceフェーズに分かれています。
Mapフェーズでは各スレーブノードのデータに対して並列に処理を行い、
Reduceフェーズでは、Mapフェーズの処理結果に対する集約が行われます。
Hadoopの機能をサポートするユーティリティ群です。
分散処理のジョブスケジューリングとリソース管理を行うコンポーネントです。
MapReduceのみならず、Spark、Tez などの他の分散処理フレームワークのリソース管理も可能としています。
「Spark」(スパーク)は、大量データに対して高速に分散処理を行うフレームワークです。
複数のサーバを用いたクラスタ構成を組むことが特徴で、
データサイズやニーズの変化に合わせてサーバを追加(スケールアウト)することにより、
高いシステム拡張性と処理性能の維持向上を実現しています。
Sparkには以下の特徴があります。
● 分散キャッシュであるRDD(Resillient Distributed Datasets)により、繰り返し処理で高パフォーマンスを実現
● インメモリでの高速処理と、Hadoopと同様の高い耐障害性を確保
● 汎用的なプログラミング言語とSQLの記述による高い開発生産性
SparkはHadoopクラスタと連携することにより、最適化されたシステムとして動作します。
1つのSparkアプリケーションがクラスタ環境を占有しないように、YARNのリソース管理、スケジュール管理に従って適切に処理されます。
また、HDFSを構成するサーバ上でSparkは動作するため、データソースへのアクセスが分散され最適化されます。
◆ 顧客ビジネス: | 分析領域の拡大による商品・サービスの付加価値向上・シェア拡大 |
◆ 活用シーン: | 構造化されたERPやCRMのデータに加えて、アクセスログやSNS等の非構造データを利用 |
◆ 導入効果:
OpenStandiaではApache HadoopとApache Sparkの技術支援・サポートサービスを提供しています。
お気軽にOpenStandiaまでお問い合わせください。
●オープンソースソフトウェア年間サポートサービス詳細
●技術支援サービス詳細
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。