私はしばらくの間ServerFaultを読むことを楽しんでおり、Hadoopに関するかなり多くのトピックに出会いました。グローバルな観点からそれが何をするかを見つけるのに少し苦労しました。
だから私の質問は非常に簡単です:Hadoopとは何ですか?それは何をするためのものか ?それは何のために使われますか?なぜそれはお尻を蹴るのですか?
編集: Hadoopが使用されたユースケースのデモンストレーション/説明がある人がいたら、それは素晴らしいでしょう。
私はしばらくの間ServerFaultを読むことを楽しんでおり、Hadoopに関するかなり多くのトピックに出会いました。グローバルな観点からそれが何をするかを見つけるのに少し苦労しました。
だから私の質問は非常に簡単です:Hadoopとは何ですか?それは何をするためのものか ?それは何のために使われますか?なぜそれはお尻を蹴るのですか?
編集: Hadoopが使用されたユースケースのデモンストレーション/説明がある人がいたら、それは素晴らしいでしょう。
回答:
馬の口からまっすぐ:
Hadoopは、汎用ハードウェアで構築された大規模なクラスターでアプリケーションを実行するためのフレームワークです。Hadoopフレームワークは、信頼性とデータモーションの両方をアプリケーションに透過的に提供します。HadoopはMap / Reduceという名前の計算パラダイムを実装します。アプリケーションは多数の小さな作業フラグメントに分割され、それぞれがクラスター内の任意のノードで実行または再実行されます。さらに、計算ノードにデータを保存する分散ファイルシステム(HDFS)を提供し、クラスター全体で非常に高い集約帯域幅を提供します。Map / Reduceと分散ファイルシステムの両方は、ノードの障害がフレームワークによって自動的に処理されるように設計されています。
Map / Reduceは、Googleで人気のあるプログラミングパラダイムです。タスクでは、タスクが小さな部分に分割され、処理のために多数のノードに分散され(マップ)、結果が最終的な回答(reduce)にまとめられます)。GoogleとYahooは、これを検索エンジンテクノロジーなどに使用しています。
Hadoopは、この種の処理スキームを実装するための汎用フレームワークです。なぜそれがお尻を蹴るのかについては、主にそれがフォールトトレランスなどのきちんとした機能を提供し、処理を行うためにほとんどすべての種類のハードウェアをまとめることができるためです。また、問題がパラダイムに適合していれば、非常にうまくスケーリングします。
あなたはそれについてのすべてをウェブサイトで読むことができます。
いくつかの例については、Paulがいくつか挙げましたが、ここではWeb中心ではないいくつかの方法を紹介します。
基本的に、このモデルは、完全に独立した同様の離散計算に分解できる問題に対して非常にうまく機能し、最終結果を生成するために再結合できます。
Clouderaには、Map ReduceとHadoopの背後にある原則を説明する素晴らしいビデオがあります。
http://www.cloudera.com/hadoop-training-basic
MapReduceの背後にある中核となるアイデアの1つは、大規模なデータセットの場合はディスクにバインドされるため、Hadoop HDFSでは、並列処理を可能にする多数のノード間で物事を分割できる機能です。
システム管理者にとって興味深いHadoopの使用法の多くは、大規模なログファイルセットの処理によく使用されます。