Hadoopの歴史の大部分について、MapReduceはデータ処理に関して町で唯一のゲームです。 MapReduceの可用性は、Hadoopの成功の理由であり、同時に、さらなる採用を制限する大きな要因となっています。
MapReduceは、熟練したプログラマーが、基礎となる分散コンピューティングインフラストラクチャを気にすることなく、分散アプリケーションを書くことを可能にします。これは非常に大きな問題です.HadoopとMapReduceフレームワークは、アプリケーション開発者が処理する必要のないあらゆる種類の複雑さを処理します。
<!たとえば、ノードを追加してクラスターを透過的にスケールアウトする機能と、データ・ストレージ・サブシステムとデータ処理サブシステムの両方の自動フェイルオーバーは、アプリケーションにほとんど影響を与えずに行われます。コインのもう一つの側面は、MapReduceは膨大な量の複雑さを隠していますが、パラレルプログラミングのインターフェースであることを忘れてはいけないということです。これは高度なスキルであり、幅広い採用への障壁となります。まだ多くのMapReduceプログラマーがいないだけで、誰もがそれをマスターするスキルはありません。
<! - 2 - >
Hadoopの初期(Hadoop 1以前)では、クラスタ上でのみMapReduceアプリケーションを実行できました。 Hadoop 2では、YARNコンポーネントがMapReduceフレームワークからリソース管理とスケジューリングを引き継ぎ、アプリケーションをHadoopクラスター上で実行できるようにする汎用インターフェースを提供することで、YARNコンポーネントをすべて変更しました。つまり、MapReduceはHadoop上でアプリケーションを開発して実行するために使用できる多くのアプリケーションフレームワークの1つになりました。 Hadoop上の他のフレームワークを使用してアプリケーションを実行することは可能ですが、MapReduceを忘れることを意味するわけではありません。
<! - 3 - >
MapReduceは現在、Hadoopで利用可能なプロダクション対応のデータ処理フレームワークです。最終的に他のフレームワークも利用できるようになりますが、MapReduceは10年近くの成熟期を迎えています(JIRAの問題は4,000件近く完了しており、数多くの開発者が関わっています)。紛争はない:MapReduceは、データ処理のためのHadoopの最も成熟したフレームワークです。さらに、MapReduceコードがかなり使用されているため、すぐにはどこにも行き渡ることはありません。簡単に言えば、MapReduceはHadoopの重要な部分です。
Apache HiveプロジェクトとApache Pigプロジェクトは、Hadoopでのデータ処理の簡単な開始点であるため、非常に人気があります。多くの問題、特にSQLで解決できるものは、HiveとPigが優れたツールです。しかし、統計処理やテキスト抽出などの広範なタスク、特に非構造化データの処理では、MapReduceを使用する必要があります。