分散処理基盤を独自で開発する場合には「プロセス起動」「プロセス監視」「プロセス間通信管理」「データ処理の効率的分散」「特定ノード故障時の動作」など、さまざまな複雑な考慮が必要になり、完成までには非常に大きなコストと開発技術が必要となります。
Apache Hadoopを利用することで、上記のような複雑な処理をすべてApache Hadoopに任せることが可能となります。Apache Hadoopは「ジョブ実行」「タスク分散」を管理し、並列分散方式によるデータ保管機能を提供します。
開発者は「Mapper」と「Reducer」という2つのスクリプトを作成するだけで簡単に分散処理を実装できるようになり、本来やるべきビジネスロジックに集中できます。
Apache Hadoopの中核は、分散ファイルシステム「HDFS」と、並列分散処理フレームワーク「MapReduce」で構成されています。
①Apache Hadoopは、巨大なファイルをブロックに分割し、クラスタ内のノードに分散させます。
②パッケージ化されたコードをノードに転送してデータを並行して処理します。
Apache Hadoop活用により処理高速化が可能です。
サーバ1台の既存システムでは「数日」を要していた重い処理を、Apache Hadoopによる分散処理に切り替えると「数時間」で完了できるケースもあります。
Hadoopは汎用的で安価なサーバを追加することで拡張できます。
1000台規模のスケールアップに対応できるように設計されており、それぞれのマシンが計算処理能力とストレージを提供します。
2000ノードのGNU/Linuxクラスタでの動作が実証されており、ペタバイト級データを処理できます。
Apache Hadoopは、耐障害性を重視して設計されているため、一部の構成ノードに障害が発生してダウンしても、すぐに別ノードへ処理を振り分けることができます。
Apache Hadoopのすべてのモジュールは「ハードウェア障害は一般的に発生するものであり、フレームワークによって自動的に処理されるべきである」という前提で設計されています。
Apache Hadoopは、高可用性を提供するためにハードウェアの可用性に依存するのではなく、Hadoopライブラリ自体がアプリケーション層で障害を検出して処理するように設計されているため、一般的な安価なコンピュータクラスタ上で高可用性サービスを提供できます。
Hadoopは多様なシステムのさまざまな形式のデータを処理し保管できます。
「構造化データ」「非構造化データ」「ログデータ」「画像データ」「音声データ」「通信記録」「電子メール」など、定型/非定型関係なく、ありとあらゆるデータを取り込んで処理できます。
Hadoopは、分散処理を実行するためのオーバーヘッドが大きいため、即時性パフォーマンスが求められるリアルタイム処理には向かない傾向にあります。
そのような用途のためには、大規模データリアルタイム処理を得意とする「Apache Spark」や「Apache Storm」などが選択肢となります。
主要なオープンソースストレージソリューションを紹介。 ①Alluxio Alluxio(旧名:Tachyon)はメモリ速度の仮想分散ストレージを提供する。 →alluxio.io...
OSS×Cloud ACCESS RANKING