ソフトウェアの背後にあるアイデアの観点から、Hadoopとは何かを誰かが説明できますか?何がそんなに人気があり、そして/または強力なのですか?
2 に答える
Hadoop は、マシンの大規模なクラスター上で大規模な計算を並行して実行できるプログラミング環境です。複数のマシンの損失に対する回復力があり、マシンを追加することでより高速な計算を可能にするスケーラブルであり、計算ステータスを報告するために追跡可能です。Hadoop が人気があるのは、それが強力なオープン ソース環境であることと、Yahoo!、Microsoft、Facebook などの大規模なユーザーを含む多くのユーザーが、大規模なデータ処理プロジェクトに Hadoop を採用しているためです。これは、計算を 2 つの単純な操作のシーケンスに分解する map/reduce アルゴリズムを使用するため、強力です。
- map - アイテムのリストを取得し、それぞれに対して同じ簡単な操作を実行します。たとえば、Web ページのテキストをトークン化し、すべてのトークンを文字列 :1 に置き換えます。
- reduce - 項目のリストを取得し、累積演算子を使用して累積します。たとえば、:1 のリストを取得し、出現回数を数えて :nt の形式のリストを出力します。ここで、nt は元のリストに出現した回数です。
適切な分解 (プログラマが行う) とタスクの分散と監視 (Hadoop が行う) を使用すると、高速でスケーラブルな計算が得られます。この例では、単語カウントの計算です。数十のマップをシーケンスし、洗練されたアルゴリズムの実装を減らして取得できます。これは非常に高いレベルのビューです。次に、 MapReduceとHadoopについてさらに詳しく読んでください。
HadoopはGoogleのMapReduceアルゴリズムを実装しています。理解を深めるには、http://research.google.com/archive/mapreduce.htmlにあるGoogleのMapReduceペーパーを読む必要があります。