【ハドゥープ】
Hadoop(ハドゥープ) とは?
最終更新:
💡 データの保存と処理を、複数台で分担
複数のコンピューターでデータを分散して保存・処理するApacheのソフトウェア群。Common、HDFS、YARN、MapReduceの役割を解説します。
📌 このページのポイント
Hadoopは、巨大なデータベースなの?
どうして複数台を使うの?
保存容量や処理を複数の機械へ分担し、規模を広げたり、故障に対応したりするためだ。数テラバイトだから必ず1台に入らない、という意味ではない。必要な性能や運用の手間に合う構成を考える。
中身は、三つだけ?
Apacheが挙げる主要モジュールは四つある。共通機能のHadoop Common、分散ファイルシステムのHDFS、資源管理とジョブのスケジューリングを担うYARN、YARN上で動く並列処理のMapReduceだ。保存と計算と資源管理を分けて覚えよう。
HDFSは、必ず3コピー保存する?
MapReduceは、どう集計するの?
例えば単語の回数なら、Mapが入力から単語と1の組を作る。その結果を単語ごとに集めて並べるshuffleとsortを経て、Reduceが値を合計する。Mapそのものがファイルを分割するわけではなく、入力の分割と並列実行はフレームワークが支えるんだ。
Sparkとは、別のもの?
もっと詳しく知りたい人へ
HDFSは、どんな読み書きでも得意?
HDFSは大きなデータの高い処理量を重視します。一般的な対話操作の低遅延や、ファイルの任意位置の細かな上書きを中心にした仕組みではありません。用途に合うか、保存方式とアクセスの性質を確認します。
Sparkなら、MapReduceより必ず速い?
必ず速いとはいえません。処理内容、データ、使える資源や設定で結果が変わるためです。SparkはYARNで動かすこともできますが、実行できる構成であることと、その仕事が速く終わることは別です。実際の処理で性能と必要な資源を比較します。
まとめ:ざっくりこれだけ覚えればOK!
「Apache Hadoop」って出てきたら「複数のコンピューターを使ってデータを分散保存・処理するためのソフトウェア群」と思えばだいたいOK!
📖 おまけ:英語の意味
「Apache Hadoop」 = 分散してデータを保存・処理するプロジェクト名
💬 Apache Software Foundationのプロジェクトです。HDFSだけ、MapReduceだけの名称ではなく、複数のモジュールからなるソフトウェア群を指します。