Apache Hadoopとは
Apache Hadoop(アパッチハドゥープ)とは、大規模データの分散格納と分散処理を実現するオープンソースのフレームワークです。GoogleのGFS(Google File System)とMapReduceの論文に触発されて、ダグ・カッティングが開発しました。ビッグデータ時代の基盤技術として広く普及しました。
| ひとことで言うと | 大量データを複数のマシンに分けて保存・処理する仕組みの基盤。 |
|---|---|
| どこで使う | テラバイト級のログ蓄積、バッチ処理による大規模集計。 |
| 注意点 | ディスク経由の処理で遅い。現在はSparkやクラウドサービスが主流。 |
Hadoopの主要コンポーネント
Hadoopは主に3つのコンポーネントで構成されます。HDFS(Hadoop Distributed File System:分散ファイルシステム)はデータを複数ノードに分散格納します。YARN(Yet Another Resource Negotiator)はクラスタのリソース管理を行います。MapReduceは分散データ処理のエンジンです。
1HDFSデータを分散して保存
▶
2複製して保持1台壊れても大丈夫
▶
3MapReduce処理を分散して実行
▶
4結果を集約1つの答えにまとめる
HDFSの仕組み
HDFSはファイルを大きなブロック(デフォルト128MB)に分割し、クラスタ内の複数のノードに分散配置します。各ブロックは複数のノードにレプリカが作成され(デフォルト3重複製)、ノード障害時にもデータを失わない高い耐障害性を実現しています。
Hadoopエコシステム
Hadoopを中心に多くの関連プロジェクトが発展しました。Hive(SQLライクなクエリ)、Pig(データフロー言語)、HBase(NoSQLデータベース)、ZooKeeper(分散協調サービス)などがHadoopエコシステムを構成しています。近年はクラウドネイティブな代替手段への移行も進んでいます。