【ハドゥープ】

Hadoop(ハドゥープ) とは?

最終更新:
💡 データの保存と処理を、複数台で分担

複数のコンピューターでデータを分散して保存・処理するApacheのソフトウェア群。Common、HDFS、YARN、MapReduceの役割を解説します。

📌 このページのポイント
Hadoop:保存・資源・処理を分担HDFS:分散保存ブロックを複数台へ冗長化は設定によるYARN:資源管理CPU・メモリを割り当て実行をスケジュールMapReduce:並列処理Map組を作るshuffle / sortキーで集めるReduce集計するHadoop Common:共通機能ほかのモジュールを支えるライブラリ等Sparkは別の処理エンジン。YARN上でも動く
四つの主要モジュールの役割で、全枠を順に通る工程ではありません。MapReduce内だけが組作成から集計への流れです。台数は例で、入力分割とMapの組作成、複製数や冗長化方式を区別します。
ひよこ ひよこ
Hadoopは、巨大なデータベースなの?
ペンギン先生 ペンギン先生
データベースそのものではなく、複数のコンピューターで保存や処理を分担するソフトウェア群だ。大きなファイルを扱うHDFSや、並列処理のMapReduceなどを組み合わせる。SQLで問い合わせる仕組みと、保存・処理の基盤は区別しよう。
ひよこ ひよこ
どうして複数台を使うの?
ペンギン先生 ペンギン先生
保存容量や処理を複数の機械へ分担し、規模を広げたり、故障に対応したりするためだ。数テラバイトだから必ず1台に入らない、という意味ではない。必要な性能や運用の手間に合う構成を考える。
ひよこ ひよこ
中身は、三つだけ?
ペンギン先生 ペンギン先生
Apacheが挙げる主要モジュールは四つある。共通機能のHadoop Common、分散ファイルシステムのHDFS、資源管理とジョブのスケジューリングを担うYARN、YARN上で動く並列処理のMapReduceだ。保存と計算と資源管理を分けて覚えよう。
ひよこ ひよこ
HDFSは、必ず3コピー保存する?
ペンギン先生 ペンギン先生
複製して保存する方式では、ファイルをブロックに分け、複製数を設定できる。3は既定の複製数だけれど固定ではない。消失訂正符号を使って冗長性を持たせる方式もある。冗長化があっても、あらゆる損失を防ぐ保証やバックアップの代わりにはならない。
ひよこ ひよこ
MapReduceは、どう集計するの?
ペンギン先生 ペンギン先生
例えば単語の回数なら、Mapが入力から単語と1の組を作る。その結果を単語ごとに集めて並べるshuffleとsortを経て、Reduceが値を合計する。Mapそのものがファイルを分割するわけではなく、入力の分割と並列実行はフレームワークが支えるんだ。
ひよこ ひよこ
Sparkとは、別のもの?
ペンギン先生 ペンギン先生
Sparkは別の処理エンジンで、YARN上でも動かせる。Hadoop全体がSparkに置き換わるという意味ではない。HDFSなどの保存、YARNなどの資源管理、MapReduceやSparkなどの処理を分け、互換性と処理の条件を確認しよう。
もっと詳しく知りたい人へ

HDFSは、どんな読み書きでも得意?

HDFSは大きなデータの高い処理量を重視します。一般的な対話操作の低遅延や、ファイルの任意位置の細かな上書きを中心にした仕組みではありません。用途に合うか、保存方式とアクセスの性質を確認します。

Sparkなら、MapReduceより必ず速い?

必ず速いとはいえません。処理内容、データ、使える資源や設定で結果が変わるためです。SparkはYARNで動かすこともできますが、実行できる構成であることと、その仕事が速く終わることは別です。実際の処理で性能と必要な資源を比較します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Apache Hadoop」って出てきたら「複数のコンピューターを使ってデータを分散保存・処理するためのソフトウェア群」と思えばだいたいOK!
📖 おまけ:英語の意味
「Apache Hadoop」 = 分散してデータを保存・処理するプロジェクト名
💬 Apache Software Foundationのプロジェクトです。HDFSだけ、MapReduceだけの名称ではなく、複数のモジュールからなるソフトウェア群を指します。

参考資料

← 用語集にもどる