調査報告書によると、Hadoopビッグデータ分析市場は今後4年間で年率40%で成長すると予測されているとのことです。 企業が膨大な量の構造化および非構造化データを扱っている現状を考えると、コスト効率の良いHadoopビッグデータソリューションは、データをより良く分析するために広く展開されています。
リレーショナル・データベースでは、非構造化データを管理することはできません。 そこで、大規模な非構造化データを処理するために、Hadoop と MongoDB のビッグデータ・ソリューションが登場しました。 両者はSparkと互換性があり、並列処理を行うなど類似点もありますが、異なる点もあります。
ApacheのHadoopは大量のデータを分散処理するためのフレームワークであり、MongoDBはNoSQLデータベースです。
この記事では、人気のある2つのビッグデータツールの違いをリストアップします。
Understanding The Basics
Apache Hadoopは、大規模データセットを分散環境に保存して、簡単なプログラミングモデルを使って並列処理できるようにするフレームワークです。 Hadoopの主なコンポーネントは以下のとおりです。
- Hadoop Common: 他の Hadoop モジュールをサポートする共通ユーティリティです。 アプリケーション データへの高スループット アクセスを提供する分散ファイル システムです。
- Hadoop YARN。 ジョブスケジューリングとクラスターリソース管理のためのフレームワークです。
- Hadoop MapReduce。
MongoDB は、現代のアプリケーション開発者とクラウド時代のために構築された、汎用的なドキュメントベースの分散型データベースです。 これは、リレーショナルデータベースで評価することができる分散データの膨大な量を扱うために開発されたスケーラブルなNoSQLデータベース管理プラットフォームです。
MongoDBの主要コンポーネントは、以下のように含まれています。 コアデータベースプロセス
Features
Hadoopの特徴を以下に説明します:
- Distributed File System: データを分散して保存するため、ノードのクラスタ間でデータの保存、アクセス、共有を並列に行うことができる。
- オープンソース。 Apache Hadoopはオープンソースのプロジェクトであり、そのコードはユーザーの要求に応じて変更することができる。
- フォールトトレランス。 ノードやタスクに発生した障害を自動的に復旧させることができるフレームワークである。
- 高度に利用可能なデータ。 Apache Hadoopでは、ブロックごとにデータのレプリカを作成するため、データの可用性が高い。
MongoDBの特徴として、以下の点が挙げられます。
- データを柔軟に共有できる。 MongoDBはデータを柔軟なJSONライクなドキュメントに格納する。つまり、フィールドはドキュメントごとに異なり、データ構造も時間の経過とともに変化することができる。
- オブジェクトにマップする。 ドキュメントモデルはアプリケーションコード内のオブジェクトにマッピングされ、データを簡単に扱うことができる。
- 分散型データベース。 MongoDBは分散データベースをコアとしているので、高可用性、水平スケーリング、地理的分散が組み込まれており、簡単に使用できます。
- オープンソースです。 MongoDBは無料で使用できます。
リアルタイム処理
Hadoopでは、処理時間は分単位、時間単位で測定されます。 このオープンソースのMapReduce技術の実装は、リアルタイム処理に使用することを想定していません。 一方、MongoDBはドキュメント指向のデータベースであり、リアルタイム処理を前提に設計されている。
Limitations
Hadoop の制限のいくつかを以下に挙げます。
- Apache Hadoop にはメタデータの処理、データ品質の保証などに必要なツール一式の提供が欠けています。
- Hadoop のアーキテクチャは複雑な方法で設計されているため、少量のデータを処理することが困難になっています。
MongoDBの制限事項を以下に挙げます。
- このフレームワークでは、結合を使用するため実行が遅くなる場合があります。
Operations In Organisations
Organisations are using Hadoop in order to generate complex analytics models or high volume data storage applications such as machine learning and pattern matching, customer segmentation and churn analysis, risk modeling, retrospective, and predictive analytics, etc….
一方、組織は Hadoop と共に MongoDB を使用して、Hadoop からの分析出力をオンライン運用アプリケーションで利用できるようにしています。これには、データのインデックス付きサブセットへのランダム アクセス、ユーザーがオンライン アプリケーションとやり取りする際のリアルタイムでの高速変更データの更新、ミリ秒単位のレイテンシー クエリー応答などがあります。 Hadoopは、データを複数のサーバーに分散して並列に管理・処理できるため、高レイテンシ・高スループットに対応し、MongoDBは、即時のリアルタイム結果を最速で実行するニーズに対応する能力を備えているため、低レイテンシ・低スループットに対応するように設計されています