問題タブ [mapreduce]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse - Eclipse MapReduce プラグインを完全にアンインストールするにはどうすればよいですか?
Hadoop 開発用の Eclipse プラグインを動作させようとしています。hadoop 0.18.3 を使用しています。古い MapReduce プラグイン ( http://www.alphaworks.ibm.com/tech/mapreducetools ) を Eclipse v3.5.2 (M20100211-1343) にインストールしましたが、それを /Applications/eclipse/plugins にコピーして Eclipse を再起動しましたが、うまくいきませんでした。これは、Hadoop と Eclipse の古いバージョン (2007 年頃) 用に開発されたためだと思いました。次に、hadoop ディストリビューションの contrib/eclipse-plugin の下に jar があることに気付きました。そのため、それを /Application/eclipse/plugins にコピーして再起動しました...その後、事態がおかしくなりました。それで、最初からやり直すことができるように両方を削除しようとしましたが、失敗しました。「ウィンドウ - >パースペクティブを開く - >その他」に移動すると、古いプラグインの「ゴースト」が表示されます...アイコンがなく、「」と表示されます
Eclipse をクリーンな以前の状態に戻すことはできないようです - Eclipse の新規インストールからやり直したいと思っていますが、それは大変な作業になります (git や pydev などの他のプラグインのインストールとワークスペースの再作成)。 )。では、Eclipse MapReduce プラグインを完全にアンインストールするにはどうすればよいでしょうか?
別の方法: Eclipse Hadoop プラグインを適切にインストールし、ローカルのタスクトラッカーに接続し、hadoop 0.18.3 用の開発 HDFS を取得するにはどうすればよいですか?
java - 仕事を分配するための効率的なアルゴリズム?
説明するのは少し複雑ですが、ここまでです。基本的には、「いかに効率的に問題を部分問題に分解するか」が課題です。ここでの「効率的」とは、分割された部分問題が可能な限り大きいことを意味します。基本的に、問題を分解する必要がまったくなければ理想的です。ただし、ワーカーは問題の特定のブロックにしか取り組むことができないため、私は解散する必要があります。しかし、これをできるだけ粗くする方法を見つけたいと思っています。
ここにいくつかの擬似コードがあります..
このような問題があります (Java で申し訳ありません。わからない場合は、喜んで説明します)。
そして、副問題は次のとおりです。
すると、作業はこのようになります。
これで、独自の state を持つ「Worker」のインスタンスができましたsections I have。
ふぅ。
そのため、私たちは多くの を持っており、より多くのProblemをWorkers常に求めていますSubProblems。私の仕事は、彼らに別れProblemsをSubProblem告げることです。ただし、難しいのは、後で SubProblems のすべての結果を収集し、それらをResult全体の にマージ (削減) する必要があることProblemです。
ただし、これにはコストがかかるため、ワーカーにできるだけ大きな「チャンク」を提供したいと考えています (できるだけ多くのチャンクを持ってtargetedSectionsいます)。
完璧である必要はありません (数学的に可能な限り効率的か何か)。つまり、各計算にかかる時間を予測できないなどの理由で、完全な解決策を見つけることは不可能だと思います。しかし、これに対する優れたヒューリスティックな解決策はありますか? それとも、設計に入る前に読むことができるリソースはありますか?
どんなアドバイスでも大歓迎です!
編集:セクション割り当ても制御できるため、それを制御することは別のオプションです。基本的に、これに関する唯一の制限は、ワーカーが固定数のセクションしか持つことができないということです。
mapreduce - Fork/Join と Map/Reduce の違い
Fork/Join と Map/Reduce の主な違いは何ですか?
分解と分散の種類 (データと計算) が異なりますか?
hadoop - Hadoop MapReduce を使用して並べ替えられた単語数
私は MapReduce を初めて使用し、Hadoop の単語カウントの例を完成させました。
その例では、単語数のソートされていないファイル (キーと値のペアを含む) を生成します。別の MapReduce タスクを以前のタスクと組み合わせることで、単語の出現回数で並べ替えることができますか?
mapreduce - opencl で古典的な map-reduce の問題を解決しますか?
私は、古典的なマップ削減の問題 (MPI とうまく並列できる) を OpenCL、つまり AMD 実装と並列化しようとしています。しかし、結果が気になります。
最初に問題について簡単に説明させてください。システムに流れ込むデータには、機能セット (それぞれに 30 個のパラメーター) とサンプル セット (それぞれに 9000 以上のディメンション) の 2 種類があります。これは、すべてのサンプル (マップ) のすべての機能のスコアを計算する必要があるという意味で、古典的なマップ削減問題です。そして、すべての機能の全体的なスコアを合計します (削減)。約 10,000 の機能と 30,000 のサンプルがあります。
問題を解決するためにさまざまな方法を試しました。まず、問題を特徴ごとに分解してみました。問題は、スコア計算がランダム メモリ アクセスで構成されていることです (9000 以上のディメンションのいくつかを選択し、プラス/マイナス計算を行います)。メモリアクセスを合体できないのでコストがかかります。次に、問題をサンプルごとに分解してみました。問題は、全体的なスコアを合計すると、すべてのスレッドがいくつかのスコア変数をめぐって競合することです。間違っていることが判明したスコアを上書きし続けます。(10k * 30k * 4バイトが必要なので、最初に個別のスコアを実行して後で合計することはできません)。
最初に試した方法では、8 スレッドの i7 860 CPU でも同じパフォーマンスが得られました。ただし、この問題が解決できないとは思いません。レイ トレーシングの問題 (数百万の三角形に対して数百万のレイを計算する) と非常によく似ています。何か案は?
さらに、私が持っているコードのいくつかを投稿しています:
機能ごとに分解します(機能しますが、遅いです):
サンプルごとに分解しますが、機能しません:
python - Disco/MapReduce: 前の反復の結果を新しい反復への入力として使用する
現在、Disco に PageRank を実装しています。反復アルゴリズムとして、1 つの反復の結果が次の反復への入力として使用されます。
すべてのリンクを表す大きなファイルがあり、各行はページを表し、行の値はリンク先のページを表します。
Disco の場合、このファイルを N 個のチャンクに分割し、MapReduce を 1 ラウンド実行します。その結果、(ページ、ランク) タプルのセットを取得します。
このランクを次の反復にフィードしたいと思います。ただし、現在、私のマッパーは、グラフ ファイルとページランクの 2 つの入力を必要としています。
- 各行がページを表し、ランクであり、リンクを表すように、グラフ ファイルとページ ランクをまとめて "zip" したいと思います。
- このグラフ ファイルは N 個のチャンクに分割されているため、ページランク ベクトルを N 個の並列チャンクに分割し、ページランク ベクトルの領域をグラフ チャンクに圧縮する必要があります。
これはすべて必要以上に複雑に思えます。(典型的な mapreduce アルゴリズムを使用した) 非常に単純な操作として、アプローチを本当に単純化できる Disco に関する何かが欠けているようです。
何かご意見は?
python - Disco/MapReduce: 分割データで chain_reader を使用する
特定のキーのデータが集約されていることを確認する必要があるため、私のアルゴリズムでは現在 nr_reduces 1 を使用しています。
入力を次の反復に渡すには、「chain_reader」を使用する必要があります。ただし、マッパーからの結果は単一の結果リストであり、これは次のマップの反復が単一のマッパーとして行われることを意味しているようです! 結果を分割して複数のマッパーをトリガーする方法はありますか?
hadoop - Hadoop 0.2:TextOutputFormatからの出力を読み取る方法は?
私のレデューサークラスは、TextOutputFormat(Jobによって指定されたデフォルトのOutputFormat)で出力を生成します。MapReduceジョブが完了した後、この出力を使用して出力を集約するのが好きです。これに加えて、このプロセスからの出力をMapReduceタスクの次の反復で使用できるように、TextInputFormatを使用して集約された情報を書き出すのが好きです。TextFormatを使用した書き込みと読み取りの方法の例を教えてもらえますか?ちなみに、SequenceではなくTextFormatを使用しているのは、相互運用性です。出力は、すべてのソフトウェアで使用する必要があります。
hadoop - Hadoop を使用している場合、リデューサーはすべてのレコードを同じキーで取得することが保証されていますか?
実際にHiveを使用してHadoopジョブを実行していますが、これuniqは多くのテキストファイルの行に想定されています。reduce ステップでは、各キーの最新のタイムスタンプ付きレコードを選択します。
Hadoop は、map ステップによって出力された同じキーを持つすべてのレコードが、クラスター全体で多くのレデューサーが実行されている場合でも、単一のレデューサーに送られることを保証しますか?
同じキーを持つ一連のレコードの途中でシャッフルが発生した後、マッパーの出力が分割されるのではないかと心配しています。
parallel-processing - シェル コマンドを使用して MapReduce を実装するにはどうすればよいですか?
クラスタで Unix シェル コマンド (awk one liner など) を並列に実行し (ステップ 1)、その結果をセントラル ノードに収集する (ステップ 2) 方法を教えてください。
更新: http://blog.last.fm/2009/04/06/mapreduce-bash-scriptを見つけまし た。これはまさに必要なことを行っているようです。