Hadoopとは?巨大なデータ分析でもスケーラブルに実行可能
Hadoopの概要
Hadoopとは、巨大なデータ分析でもスケーラブルに実行可能な分散作業を実行するオープンソースソフトウェアで、下記の2つの技術をベースにしたプログラミングモデルで成り立っています。
HDFS(分散ファイルシステム、下記の2つのノードを活用)
NameNode:マスターとして、データのメタ情報を管理
DataNode:データファイルを保存
データはトラブルが発生するリスクに備えて、いくつかのDataNodeに複製が存在します。複製が存在することで、万が一DataNodeが壊れてしまったり、エラーが発生しても、HDFSはシステムを止めずに動かすことができるわけです。
NameNodeは、DataNodeのように複製はありませんが、ダウンタイムが起こらないように動作が継続する仕組みが採用されています。
Hadoop MapReduce(計算プログラミング、2つの技術で分散処理をおこなう)
機能別のサーバ
分散処理の基盤は下記の異なる機能別サーバを活用します。
マスターサーバ:マスターサーバとして、システム全体を管理してスレーブサーバに処理を分散する
スレーブサーバ:マスターサーバが分散した処理を実際に実行する
マスターサーバは、作業がスピーディーに稼働するように、最適なスレーブサーバに処理を割り当てます。
また、万が一スレーブサーバが壊れてしまったり、エラーが発生しても、システムがダウンタイムを発生しないように、システムの稼働状態を管理し、適時割り当てをおこないます。
分散処理を実行するアプリケーション分散処理を実行するアプリケーションは、分散処理の基板上で実行処理をおこなうために、入力・出力パスや処理の重複などの情報を定義し、下記の流れでの処理を実行します。Map:入力データから欲しいデータを抽出し分解reduce:抽出されたデータをもとに集計し結果を作成
Hadoopの利点
スケール対応性のあるソフトウェア
Hadoopは、シンプルなプログラミングモデルを活用し、巨大な作業が必要になった場合でも、サーバをプラスすることで対応できるスケール対応のあるソフトウェアです。また、巨大な作業が必要となって、サーバをプラスするときにダウンタイムが起こらないため、システムを継続的に稼働し続けることができます。
リソースと時間がかからない
Hadoopは、RDBMSやDWHで必要であったスキーマ定義の必要がないため、分散処理を運用するためのリソースと時間が削減できます。
コスト削減ができる
Hadoopは、高品質仕様の高額なサーバでなくても運用できるように設計されているため、コスト削減につながります。
Wikipedia Apatch Hadoop
https://ja.wikipedia.org/wiki/Apache_Hadoop