ポイント: Hadoopは、大規模なデータセットをコンピュータのクラスター全体で処理するために設計されたオープンソースのフレームワークで、HDFS、YARN、MapReduce、Commonなどのコアコンポーネントを特徴としています。データ管理と分析を効率的に行うことができ、AmazonやFacebookなどの企業にとって非常に重要です。
- Hadoopは、ストレージのためのHDFS、リソース管理のためのYARN、データ処理のためのMapReduceで構成されています。
- 広範なデータセットを分析するための大規模な技術エコシステムをサポートしています。
Hadoopとは?
Hadoop(正式名称はApacheTM Hadoop®)は、ビッグデータを扱いやすくするために作られたオープンソースフレームワークです。複数のクラスターコンピューターに分散されたデータにアクセスし、データを処理し、関連するコンピューティングおよびネットワークリソースを管理する方法を提供します。「Hadoop」は、以下に説明する4つの主要コンポーネントから成るコア技術を指すことが一般的ですが、サポート技術やアプリケーションの全エコシステムを指すこともよくあります。
一般的
「Hadoop」は「ビッグデータ」と同じように使われることもありますが、そうすべきではありません。Hadoopはビッグデータを扱うためのフレームワークです。ビッグデータエコシステムの一部であり、Hadoop自体以上のものが含まれています。
Hadoopは、コンピューターのクラスターに格納された大規模なデータセットを処理しやすくする分散フレームワークです。フレームワークであるため、Hadoopは単一の技術や製品ではありません。代わりに、Hadoopは、広範なサポート技術や製品のエコシステムによってサポートされる4つのコアモジュールで構成されています。これらのモジュールは:
- Hadoop分散ファイルシステム(HDFSTM) –アプリケーションデータへのアクセスを提供します。Hadoopは、FTP、Amazon S3、Windows Azure Storage Blobs(WASB)など、他のファイルシステムでも動作することができます。
- Hadoop YARN –データを保持するクラスター全体でジョブのスケジュールとリソース管理のフレームワークを提供します。
- Hadoop MapReduce –大規模データセットのためのYARNベースの並列処理システムです。
- Hadoop Common –他の3つのコアモジュールをサポートするユーティリティのセットです。
よく知られているHadoopエコシステムコンポーネントには、Oozie、Spark、Sqoop、Hive、Pigなどがあります。
Hadoopが何でないか
この初心者向けチュートリアルでは、Hadoopが何であるかを知るために、それが何でないかを理解することが役立ちます。
- Hadoopは「ビッグデータ」ではない – 用語は時折同じ意味で使われますが、そうすべきではありません。Hadoopはビッグデータを処理するためのフレームワークです。
- Hadoopはオペレーティングシステム(OS)やパッケージ化されたソフトウェアアプリケーションではありません。
- Hadoopはブランド名ではありません。オープンソースプロジェクトですが、「Hadoop」は登録商標名の一部として使用されることがあります。
名前の由来は?
Hadoopは元々Doug CuttingとMike Cafarellaによって開発されました。伝説によれば、Cuttingは息子のおもちゃの象にちなんでソフトウェアに名前を付けました。象の画像はHadoopのシンボルとして残っています。
Hadoopのコア要素
Hadoopには4つの基本要素があります:HDFS; MapReduce; YARN; Common。
HDFS
Hadoopは、コモディティサーバーのクラスター全体で動作します。したがって、ハードウェア全体での活動を調整する方法が必要です。Hadoopは任意の分散ファイルシステムで動作できますが、Hadoop分散ファイルシステムが主な手段であり、Hadoop技術の中心です。HDFSはデータファイルがクラスター全体でどのように分割され、格納されるかを管理します。データはブロックに分割され、クラスター内の各サーバーには異なるブロックのデータが含まれています。また、いくつかの内蔵冗長性もあります。
YARN
すべてをまとめる糸としてYARNを考えることができれば嬉しいですが、Oozie、タプル、Sqoopなどの用語が一般的な環境では、もちろんそれほど簡単ではありません。YARNはYet Another Resource Negotiatorの頭字語です。フルネームが示すように、YARNはクラスター環境全体でのリソース管理を支援します。リソース管理、ジョブスケジューリング、およびジョブ管理タスクを別々のデーモンに分割します。主要な要素にはResourceManager(RM)、NodeManager(NM)、およびApplicationMaster(AM)が含まれます。
ResourceManagerをシステム内のすべてのアプリケーションにリソースを割り当てる最終的な権限として考えてください。NodeManagersは、各マシン上のリソース(CPU、メモリ、ネットワークなど)を管理するエージェントです。NodeManagersはResourceManagerに報告します。ApplicationMasterはその二者の間に座っているライブラリとして機能します。リソースをResourceManagerと交渉し、リソースが割り当てられたタスクを実行するために1つまたは複数のNodeManagersと協力します。
MapReduce
MapReduceは、分散サーバー上での並列処理の方法を提供します。データを処理する前に、MapReduceは大きなブロックをタプルと呼ばれる小さなデータセットに変換します。タプルは、そのキーと値のペアに従って整理され、処理されることができます。MapReduce処理が完了すると、HDFSが出力の保存と分配を管理します。MapReduceの短縮版は、大きなデータブロックをより扱いやすい小さなチャンクに分割することです。
MapReduceにおける「Map」はMapタスク機能を指します。Mapタスクはデータをキーと値のペアにフォーマットし、それらを「Reduce」機能のためにノードに割り当てるプロセスであり、これはReduceタスクによって実行され、データがタプルに減少します。MapタスクとReduceタスクは、機能を実行するためにワーカーノードを使用します。
JobTrackerはMapReduceエンジンのコンポーネントであり、クライアントアプリケーションがMapReduceジョブを提出する方法を管理します。ジョブはTaskTrackerノードに分配されます。TaskTrackerは、データが格納されている場所にできるだけ近くで処理を割り当てるように努めます。
MapReduceは、Hadoop環境での並列処理を管理する唯一の方法ではないことに注意してください。
Common、別名Hadoop Coreは、他のHadoopコンポーネントをサポートするユーティリティのセットです。Commonは、Hadoopフレームワークに典型的な(一般的な)ハードウェアの障害を管理する方法を提供することを目的としています。
Oozieとは何ですか?
OozieはApache Hadoopプロジェクトの一部として開発されたワークフロースケジューラーです。ワークフローの開始と実行を管理し、実行パスも制御します。Oozieは、hPDLで書かれたワークフロ定義を使用するサーバーベースのJava Webアプリケーションです。hPDLは、JBOSS JBPMのようなXMLプロセス定義言語です。Oozieは特定のワークフロータイプのみをサポートしているため、Hadoop環境では他のワークロードスケジューラーが通常Oozieの代わりに、またはそれに加えて使用されます。
Hadoopはビッグデータとどのように関連していますか?
ビッグデータはキャッチオールフレーズになりつつありますが、Hadoopは特定の技術フレームワークを指します。Hadoopはビッグデータを扱うためのゲートウェイであり、より具体的には、分散環境に存在する大規模なデータセットを扱うことを可能にします。ビッグデータを定義する方法の1つは、リレーショナルデータベース管理システム(RDBMS)によって処理できないほどの大きさのデータです。HadoopはRDBMSの制限を克服するのに役立ちますので、ビッグデータを処理できます。
Hadoopがビッグデータとどのように関連しているかよりも、Hadoopが他のビッグデータ技術とどのように関連しているかの方が重要な質問かもしれません。コアHadoopモジュール間の関係と、それらを補完または競合する技術やソリューションとの関係については、Hadoopエコシステムセクションでより深く説明します。
Hadoopは何を置き換えるのですか?
多くの場合、Hadoopは何も置き換えていません。なぜなら、Hadoopが使用されていることは以前は単に行われていなかったからです(特に非構造化データの場合)。リレーショナルデータベースや分散ファイルシステムは、それぞれHadoopができることの一部を実行しますが、はるかに小規模で動作します。再度、より指示的な質問は、Hadoopのどの要素がエコシステム内の他の技術や製品によって置き換えられたり強化されたりできるか?
CARFAXがビッグデータとHadoopをどのように利用しているかを見る
Hadoopを使用しているのは誰ですか?なぜですか?
Hadoopがどのように使用されているか、そしてそれを使用している組織のリストは、ファイルを保存する時間の中で古くなってしまうでしょう。主要なユーザーには、Amazon、EBay、Facebook、Google、IBM、LinkedIn、ニューヨークタイムズ、Rackspace、Yahooが含まれます。
一般的に言えば、Hadoopは大規模なデータセット、時間に敏感なデータ、パフォーマンスや収益を改善するための洞察を提供できるデータを持つ業界や組織で普及しています。具体的には、金融サービス、電気通信、ユーティリティ/エネルギー、小売業界が早期のHadoopの採用者や革新者となっており、一部の政府機関や他の公的部門の組織も含まれます。
Hadoopの例:5つの実世界のユースケース
Hadoopガイド
- 初心者のためのHadoopチュートリアル:Hadoopの基本
- Hadoop管理の紹介
- Hadoopセキュリティの紹介
- Apache Flumeの紹介
- Hiveの紹介
- HDFSの紹介
- Hbaseの紹介
- Hadoopの例:5つの実世界のユースケース
- Hadoopキャリア:雇われるための道
- Hadoop面接質問
- Hadoop分析の紹介
- Apache Pigの紹介
- Apache Yarnの紹介
- Hadoopアーキテクチャの紹介
- Hadoopの利点とメリット
- Apache CassandraとHadoopの併用
- Hadoop vs Kubernetes:K8sとクラウドネイティブはHadoopを終わらせるのか?
- Hadoop認定
- Hadoopクラスター:紹介
- Hadoopエコシステムとコンポーネント
これらの投稿は私自身のものであり、BMCの立場、戦略、意見を必ずしも代表するものではありません。