13

私は最近データ分析を始めましたが、この 1 年間でかなりのことを学びました (現時点では、ほとんど Python のみを使用しています)。次のステップは、MapReduce/Hadoop のトレーニングを開始することだと思います。しかし、私は正式なコンピューター サイエンスのトレーニングを受けていないため、人々が Hadoop について書くときに使用される専門用語をよく理解していないことが多いため、ここで質問します。

私が望んでいるのは、Hadoop のトップ レベルの概要 (他に使用すべきものがない限り) であり、おそらく何らかのチュートリアル/教科書の推奨事項です。

たとえば、Python で作成したニューラル ネットワークを並列化したい場合、どこから始めればよいでしょうか? アルゴリズムを使用して Hadoop を実装するための比較的標準的な方法はありますか?それとも、各ソリューションは特定の問題に特化していますか?

Apache wiki ページでは、Hadoop を「コモディティ ハードウェアで構築された大規模なクラスター上でアプリケーションを実行するためのフレームワーク」と説明しています。しかし、それはどういう意味ですか?「Hadoop クラスター」という言葉を聞いたことがありますが、Hadoop が Java ベースであることは知っています。つまり、上記の例では、Java を学習し、たとえばいくつかの Amazon サーバーで Hadoop クラスターをセットアップし、最終的に Hadoop を使用してクラスターで動作させる前にアルゴリズムを Jython 化する必要があるということですか?

助けてくれてありがとう!

4

6 に答える 6

15

まず、PythonでHadoopを使用するには(独自のクラスター、Amazon EMR、またはその他のもので実行する場合は常に)、「Hadoopストリーミング」と呼ばれるオプションが必要になります。

Hadoopマニュアルの元の章更新されたリンク)を読んで、それがどのように機能するかを理解してください。

HadoopでのPythonジョブの実行を簡素化する優れたライブラリ「MrJob」 もあります。

独自のクラスターをセットアップするか、Amazon ElasticMapReduceを試してみることができます。後者はあなたにいくらかの費用がかかる可能性がありますが、最初に実行する方が簡単な場合もあります。AmazonEMRでHadoopストリーミングを使用してPythonを実行する方法に関する優れたチュートリアルがあります。シンプルですが実用的なアプリケーションをすぐに示します。

Hadoop自体を学ぶには、そこにある本の1つを読むことをお勧めします。彼らは、「Hadoop In Action」は、Python/Hadoopストリーミングに興味のある人のために物事をカバーするのに優れていると言います。

また、テストや学習のために、実際のクラスターがなくてもローカルマシンでHadoopを実行できることにも注意してください。

アップデート:

MapReduce(MapReduce言語でさまざまな種類の問題を特定して表現する方法)の理解については、Pythonの例を含むすばらしい記事「 MapReduceのパターン、アルゴリズム、およびユースケース」をお読みください。

于 2012-08-29T14:00:41.797 に答える
4

Cloudera VM for Hadoopをダウンロードすることから始めることをお勧めします。これは、最近では多くの業界でほぼ標準となっており、Hadoop のセットアップ プロセスを簡素化します。次に、Map/Reduce を学習するための標準的な Hello World に相当するワード カウントの例については、このチュートリアルに従ってください

その前に、map/reduce を理解する簡単な方法は、Python に組み込まれている map/reduce 関数を試すことです。

x = [1, 2, 3, 4]
y = map(lambda z: z*z, x]
print y
[1, 4, 9, 16]
q = reduce(lambda m,n : m+n, y)
print q
30

ここで、マッパーはすべての要素を 2 乗してデータを変換し、リデューサーはその 2 乗を合計します。Hadoop はこれを使用して大規模な計算をスケーリングするだけですが、独自のマッピングと縮小関数を理解する必要があります。

于 2012-08-29T13:57:46.770 に答える
0

グーグルのオリジナル作品から始めてみませんか?これが他のすべての始まりの場所だからです。並列処理については、ここから選択できるさまざまなオプションがあります

于 2012-08-29T13:50:02.497 に答える
0

http://blog.doughellmann.com/2009/04/implementing-mapreduce-with.html

Doug のソリューションは、Python のマルチプロセッシング プールのシン ラッパーにすぎないため、Google 規模の運用には適していません (1 台のマシンしか使用しませんが、そのマシンで多くのコアを使用できます)。しかし、始めるには十分であり、何をしているのかを簡単に確認できます。

ニューラルネットワークを並列化したい

簡単ではありません。ノード間の通信は、必要以上に面倒です。ただし、ネットワークの複数のインスタンスを実行して、スループットを向上させることができます。

多くの場合、ML の問題は非常に簡単に並列化できます。各ノードで異なるニューラル ネットワークを実行します。勾配のまともな方法は非常に線形であるため、少し注意が必要ですが、他の最適化方法を使用できます (いくつかの異なるステップ サイズを試して、最適なものを選択してください)。

于 2012-08-29T14:02:26.553 に答える
0

ええと、私は 4 日間続けてそれに取り組んできましたが、ついに足を踏み入れたと思います。このレポを確認してください。役立つと思います。

于 2019-01-23T21:22:44.763 に答える