mapreduceプログラミングモデルを使用して解決できるデータサイエンス問題のさまざまなクラスは何ですか?
mapreduceプログラミングモデルを使用して解決できるデータサイエンス問題のさまざまなクラスは何ですか?
回答:
最初にそれを部分に分割しましょう。
データサイエンスは生データから知識を作ることです。機械学習、統計、その他のフィールドを使用して、意思決定を簡素化(または自動化)します。データサイエンステクニックはどのようなデータサイズでも機能しますが、データが多いほど、予測が正確になり、決定がより正確になります。
Hadoopは、大量のデータを処理することを目的とした一連のツールの一般的な名前です。Hadoopの2つの最も重要なコンポーネントは、HDFSとMapReduceです。
HDFS(Hadoop分散ファイルシステム)は、非常に大量のデータを保持できる特別な分散ストレージです。HDFS上の大きなファイルはブロックに分割され、ブロックごとにHDFS APIがその場所を公開します。
MapReduceは、データを持つノードで計算を実行するためのフレームワークです。MapReduceは、HDFSによって公開されるデータの局所性を頻繁に使用します。可能な場合、データはノード間で転送されませんが、代わりにコードがデータとともにノードにコピーされます。
したがって、基本的に、データの局所性の原則に違反しない問題(データサイエンスタスクを含む)は、MapReduceを使用して効率的に実装できます(他の多くの問題は、効率的ではなく、それでも十分に解決できます)。
いくつかの例を見てみましょう。たいていの場合、アナリストは表形式のデータについて単純な統計を必要とするだけです。この場合、基本的にMapReduce上のSQLエンジンであるHiveはかなりうまく機能します(Impala、Sharkなどもありますが、HadoopのMapReduceは使用しないため、後で詳しく説明します)。
他の場合では、アナリスト(または開発者)は、以前に構造化されていないデータを使用することを望む場合があります。純粋なMapReduceは、データの変換と標準化に非常に適しています。
一部の人々は、Rなどのツールを使用した探索的統計と視覚化に慣れています。RHadoopパッケージを使用して、このアプローチをビッグデータ量に適用することが可能です。
MapReduceベースの機械学習に関しては、Apache Mahoutが最初に言及されます。
ただし、データの局所性が存在する場合でもHadoopで非常にゆっくりと動作するアルゴリズムの1つ、つまり反復アルゴリズムがあります。反復アルゴリズムには、複数のMapおよびReduceステージがある傾向があります。HadoopのMRのフレームワークは、読み出しおよび書き込みデータをディスクに各ステージに(時には間に)、反復(ならびに任意の多段階)タスクがひどく遅いなりいます。
幸いにも、データの局所性を使用し、ステージ間でデータをメモリに保持することの両方が可能な代替フレームワークがあります。おそらく、最も注目すべきものはApache Sparkです。Sparkは、独自のランタイムを使用し、分散データセットを操作するためのかなりリッチなAPIを公開するHadoopのMapReduceの完全な代替品です。Sparkには、データサイエンスに密接に関連するいくつかのサブプロジェクトがあります。
そのため、Hadoopおよび関連プロジェクトで解決できるかなり大量のデータサイエンス問題があります。
データサイエンスには、私の投稿で説明したように、さまざまなサブエリアがあります)ほぼ各分野で、科学者と開発者は大きな貢献をしています。何ができるかについて詳しくは、次のWebサイトをご覧ください。
また、MapReduce + Excel + Cloudの組み合わせに関するいくつかの作業がありますが、リンクが見つかりません。
データサイエンス問題のさまざまなクラスとは...
各「クラス」は、純粋に均一な問題ドメインではありません。つまり、一部の問題は、マップを介して解決できず、通信コストまたはアルゴリズムの動作のためにアプローチを削減できません。動作とは、ある問題では、チャンクではなくすべてのデータセットを制御したいということです。したがって、問題の「クラス」のタイプをリストすることは拒否します。
MapReduceで何ができるかを知るだけではデータサイエンスには不十分であることを忘れないでください。また、MapReduceで実行できないことも知っておく必要があります。
あなたが調査すべき論文があります:
それらは、MapReduceで対処するのに妥当な3つのクラスの機械学習問題を区別します。
また、各クラスの例も示します。
So basically any problem that doesn't break data locality principle may be efficiently implemented using MapReduce
。私の理解では、MapReduceパターンで表現できる問題しか解決できません。