問題タブ [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.
frameworks - MapReduceの簡単な説明?
私のCouchDBの質問に関連しています。
誰でも麻痺者が理解できる言葉で MapReduce を説明できますか?
concurrency - マルチコア / マルチ CPU マシンにループ内の関数呼び出しを並列処理するように指示するにはどうすればよいですか?
私は現在、データベースから大量のデータをロードし、状況に応じてさまざまな計算によってはるかに小さなセットに削減する 1 つのモジュールを持つアプリケーションを設計しています。
より集中的な操作の多くは決定論的に動作し、並列処理に適しています。
データベースから到着する多数のデータチャンクを反復処理するループがあり、それぞれが副作用なしで決定論的関数を呼び出す場合、プログラムが関数が戻るのを待たずに設定するようにするにはどうすればよいですか次の呼び出しが行われるので、それらを並行して処理できますか? 原則を実証するための単純なアプローチは、今のところ私に適しています。
私は Google の MapReduce の論文を読みました。全体的な原則をさまざまな場所で使用できますが、今のところ、大規模なクラスターをターゲットにすることはしません。バージョン 1.0 の単一のマルチコアまたはマルチ CPU マシンになる予定です。 . そのため、現在、ライブラリを実際に使用できるかどうか、または自分でレベルを下げた基本バージョンを作成する必要があるかどうかはわかりません。
私は設計プロセスの初期段階にあり、これまでのところ言語として C 言語 (速度が重要な部分) と Python (生産性が重要な部分) をターゲットにしています。やむを得ない理由があれば乗り換えるかもしれませんが、今のところ自分の選択に満足しています。
現在のチャンクを処理するよりもデータベースから次のチャンクを取得する方が時間がかかり、プロセス全体が I/O バウンドになる可能性があるという事実を認識していることに注意してください。ただし、現時点ではそうではなく、実際には db クラスターまたはメモリ キャッシュなどを使用して、この時点で I/O バウンドにならないようにします。
ruby-on-rails - RailsでのRT並列処理
私はRubyonRailsで一種のパーソナライズされた検索エンジンを開発しており、現在、ユーザーのレコードに応じて結果をリアルタイムで並べ替える最良の方法を見つけようとしています。
例:検索されるアイテムにはタグ(IDを持つ個別のエンティティ)を含めることができます。たとえば、アイテムにはtags = [1、5、10、23、45]があります。
一方、ユーザーは、特に関心のあるタグにフラグを付けている可能性があるため、ユーザーがtags = [5、23]を持っているとします。
結果の並べ替えに使用されるスコアは、ユーザーが「見つめている」アイテムのタグの数を考慮に入れる必要があります。たとえば、アイテムのスコアは、アイテムの属性に基づいて50%になり、ユーザーの(見つめられたタグの数)に応じてランクに基づいて50%になります。
一つのアイデアは、これを情報検索システムのソート機能に注入することでした。しかし、おそらく私が使用するSphinxでは、実装するのが非常に厄介です(ユーザーのベクトルが大きい場合)。Lucene / solrについてはわかりませんが、とにかく必要な高度な非テキスト検索機能(距離、日付、時刻など)がないようです。
他のオプションは、IRシステムから中間セットを取得し、それをアプリケーションレベルで処理することです。ただし、100〜1000レコードを順番に処理してから、Railsで並べ替えると非常に時間がかかると確信しています。
一方、並列処理が簡単なタスクのようです。1000レコードをセットに分割し、別々のスレッドで処理してから並べ替えます。
私はいくつかのマップリデュースの実装について読みました。hadoopのようなユニバーサルとskynetのようなレール固有の実装の両方ですが、リアルタイム処理ではなく、大規模なバッチジョブに最適です(私が間違っていない限り)。
これに使用できるメモリ内の軽量MR実装はありますか?それとも、それを処理する方法について他のアイデアがありますか?
(補足:この設定は、「Googleニュースのパーソナライズ:スケーラブルなオンライン協調フィルタリング」の論文から理解できるように、Googleニュースの仕組みに似ていると思います。これらは、一連の候補ストーリーと、ユーザーが属する一連のクラスターをリアルタイムで照合します。パーソナライズされた方法でストーリーを並べ替える(事前に計算された)
hadoop - MapReduce/Hadoop をどのように使用していますか?
他の人々がHadoopやその他の MapReduce のようなテクノロジーをどのように使用しているかについての一般的な情報を探しています。一般的に、既存のデータ セット (Web サーバー ログ ファイルなど) を処理する MR アプリケーションを作成しているのか、それとも新しいデータ セットを生成して処理するアプリケーションを作成しているのかに興味があります。
編集: フォローアップの質問
(1) 他の MR プログラムによって生成されたデータに対して MR プログラムを実行したことがありますか?
(2) MR を使用して既存のデータ セットを変更する必要はありますか?
(3) データセットを他の開発者と共有したことがありますか?
c# - Apache Hadoop に相当する .NET はありますか?
それで、私はHadoopに強い関心を持って注目してきました。正直なところ、私は魅了されています。
私の唯一の小さな問題は、私が C# 開発者であり、それが Java であることです。
Hadoop.net や NHadoop、またはGoogle MapReduceアプローチを取り入れた .NET プロジェクトを探しているほど Java を理解していないわけではありません。誰か知っていますか?
database - 大規模データ - ストレージとクエリ
約 3 億レコードの膨大なデータがあり、3 ~ 6 か月ごとに更新されます。情報を取得するには、このデータを (継続的に、リアルタイムで) クエリする必要があります。オプションは何ですか - RDBMS(mysql) 、またはHadoop のような他のオプションがあります。どれが良いでしょうか?
database - 200 億行/月 - Hbase / Hive / Greenplum / What?
データ ウェアハウス システムの適切なソリューションを選択するために、あなたの知恵を活用したいと思います。問題をよりよく理解するための詳細を次に示します。
データは、1 つの BIG ファクトと最大 15 のディメンションを持つスター スキーマ構造で編成されます。
1 か月あたり 200 億のファクト行
10 次元で 100 行 (ある程度の階層)
5 次元で数千行
2 次元で ~200K 行
2 つの大きな次元で 50M ~ 100M 行
この DB に対して実行される 2 つの典型的なクエリ
dimq の上位メンバー:
タプル対策:
質問:
- そのようなクエリを実行するのに最適なプラットフォームは何ですか
- 必要なハードウェアの種類
どこでホストできますか (EC2?)
(現時点では、インポートと読み込みの問題は無視してください)
Tnx、
ハガイ。
algorithm - MapReduce / Hadoopを使用して固有値計算を実装する方法は?
PageRankが固有値の形式であり、それがMapReduceが導入された理由であるために可能です。しかし、実際の実装には問題があるようです。たとえば、すべてのスレーブコンピューターがマトリックスのコピーを維持する必要がありますか?
language-agnostic - Map / Reduceとは何ですか?
特にGoogleの超並列計算システムのコンテキストでは、map/reduceについて多くのことを聞きます。正確には何ですか?
c# - .NET でのマップと削減
「 Map and Reduce」アルゴリズムの使用が正当化されるのはどのようなシナリオですか?
このアルゴリズムの .NET 実装はありますか?