問題タブ [distributed-system]

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.

0 投票する
3 に答える
7533 参照

java - Hadoop MapReduce ジョブの実行時に、MAP のキー/値入力としてファイル名/ファイルの内容を取得する方法は?

PDF、DOC、および DOCX ファイルを分析するプログラムを作成しています。これらのファイルは HDFS に保存されます。

MapReduce ジョブを開始するときに、マップ関数にファイル名をキーとして、バイナリ コンテンツを値として持たせたいと考えています。次に、PDF パーサー ライブラリに渡すことができるストリーム リーダーを作成します。マップ フェーズのキーと値のペアが filename/filecontents になるようにするにはどうすればよいですか?

Hadoop 0.20.2 を使用しています

これは、ジョブを開始する古いコードです。

他のinputformatタイプがあることは知っています。しかし、私が望むことを正確に行うものはありますか? ドキュメントはかなり曖昧だと思います。利用可能なものがある場合、Map 関数の入力タイプはどのように見えるでしょうか?

前もって感謝します!

0 投票する
1 に答える
500 参照

network-programming - DHT による Pastry-P2P のようなリソース割り当ての良さを理解する

分散システムを開発しようとしています。システムは、すべての機能の中で、いくつかのリソース (小さなブロックに断片化できる大きなリソース) を割り当てる必要があります。そのために、Chord/Pastry P2P アプローチ (ロジック リングネット上のステーション) を使用したいと考えています。Pastry には、リソースの割り当てに関して非常に興味深いアプローチがあります。ユーザー ステーションが何かを送信する必要がある場合、ステーション GUID のハッシュを使用して dht 内のキーを見つけるため、次のようなものが考慮されます。

ユーザー ステーション -> GUID (ユーザー ステーション IP のハッシュ) -> ハッシュ -> X という値を取得します -> このハッシュを使用して、ペストリー リングネットで同じ GUID を持つステーションを見つけます (ペストリー ノードの公開鍵のハッシュ)値が配置されています(または直前の先行者)->そこにデータを配置します。

これは、理想的には、すべてのユーザーが常に同じ Patry ステーション (Patry ノード) に自分のデータを配置することを意味します。まあ、プロトコルは近隣のデータもミラーリングするので、ユーザーはいくつかのノードでそのデータを見つけることができます.

これは良いアプローチですか?以前のように進めると、副作用はありますか?

0 投票する
2 に答える
5253 参照

file-io - HadoopファイルシステムがランダムI/Oをサポートしないのはなぜですか?

GoogleファイルシステムやHadoopのような分散ファイルシステムは、ランダムI/Oをサポートしていません。
(以前に書き込んだファイルを変更することはできません。書き込みと追加のみが可能です。)

なぜ彼らはこのようなファイルシステムを設計したのですか?
デザインの重要な利点は何ですか?

PS私はHadoopが書き込まれたデータの変更をサポートすることを知っています。
しかし、彼らは、それはパフォーマンスが非常に良くないだろうと言いました。なんで?

0 投票する
3 に答える
30302 参照

distributed-system - 垂直および水平分布とは何ですか?

  • 垂直分散client-server application:分散処理は、aをとして編成することと同じmultitiered architecture です。論理的に異なるコンポーネントを異なるマシンに配置します。
  • 水平分布:分布clients and servers-現代建築でより一般的です。またはは同等の部分に分割されるclient場合serverがあります が、各部分は完全なデータセットの独自のシェアで動作しているため、負荷が分散されます。physicallylogically

verticalとの違いを理解しようとしましたhorizontalか?logically「 」と「」の意味は何physicallyですか?...しかし、私はできません!! 誰もが知っている..??

0 投票する
1 に答える
418 参照

java - 一般知識の質問: ネットワーク アクセス時間、キャッシュ アクセス時間、ディスク アクセス時間

クライアント サーバー ベースの分散ファイル システムのシミュレーターを作成しました。平均ブロック アクセス時間を計算するには、次のようにします。

  1. ローカル キャッシュ アクセス時間
  2. クライアントからクライアントへのキャッシュ アクセス時間 (同一ネットワーク)
  3. クライアントからサーバーへのキャッシュ アクセス時間 (異なるネットワーク)
  4. クライアントからディスクへのアクセス時間

ブロックサイズが64MBの場合...

誰でもおおよその時間を教えてもらえますか...それを証明するリンクをいただければ幸いです...

ありがとう。

0 投票する
1 に答える
328 参照

networking - P2Pコード/ペストリーのようなネットワークでメッセージルーティングの方向を管理する方法を理解する

これは、大規模でスケーラブルなP2Pネットワーキングアプローチである論理リングネットovrlayに関する質問です。

P2Pネットワーキングのコンテキストを検討してください。リングを介して全員が相互に接続されているN台のコンピューターがあります。すべてのノードには、先行ノードと後続ノードを記憶するルーティングテーブルがあります。これは、ルーティングテーブルが先行と後続のみを格納する場合の最も単純なケースです。すべてのノードには、番号であるIDが提供されます。リングは、昇順の番号が時計回りの方向に割り当てられるように編成されています。

したがって、次のような状況になる可能性があります。* --12 --13 --45 --55 --180 --255-*このネットワークには6つのノードがあり、それらは円で接続されています。

ノードが別のノードにメッセージを送信する必要がある場合、ルーティングテーブルが使用されます。汎用ノードに着信メッセージがある場合は、宛先アドレスが確認され、ルーティングテーブルにない場合は、後続ノードまたは先行ノードがルーティングされます。それ。

次に、この例を考えてみましょう。私の単純なネットワークでは、ノード13はノード255にメッセージを送信したいと考えています。すべてのノードは先行ノードと後続ノードしか見ることができないため、すべてのノードはグローバルネットワークを考慮することができません。実際、P2Pではノードはしか見ることができません。ネットの一部。したがって、ノード13は、次の決定を行う必要があります。メッセージをどこにルーティングするか(宛先がその近隣にないため)?メッセージは45または12に送信する必要がありますか?(時計回りまたは反時計回り?)。

もちろん、12に送信する方が適切な決定ですが、ノード13はどのようにしてこれを知ることができますか?

最も簡単な解決策は次のとおりです。常に時計回りにルーティングしますが、この場合、非常に近いノードに非常に長い時間で到達します。

これをどのように処理しますか?

PS:Fingering時計回りのルーティングベースのアプローチに適用されるようなソリューションがあります。運指は、ジャンプリンクを作成するためにルーティングテーブルに他のアドレスを配置します...これは、時計回りのルーティングでのみ使用できるソリューションです...

http://en.wikipedia.org/wiki/File:Chord_route.png

正しいルーティング方向を見つけるための良い解決策を知りたいです...それは存在しますか?Chordはこれをどのように処理しますか?

ありがとうございました。

0 投票する
6 に答える
547 参照

database - 小さな数学データに最適なデータストアソリューションですが、高速で集計関数を使用します

これらの要件を持つプロジェクトのデータストレージソリューションを探しています。

  1. アプリケーションは、ストア内にコンテナー/テーブルを動的に作成します。
  2. 短期間(たとえば2週間)、そのテーブル/コンテナは大量の挿入を並行して取得します。最後の読み取りはすぐに利用可能である必要があります。
  3. 挿入されるデータは非常に小さく、4〜6列の数値です。
  4. 小さなクエリ/フィルタリングのサポートが必要ですが、結合やクロスクエリは必要ありません。
  5. 「Count」、「Sum」、「Max」、「Min」、「Avg」などの集計関数を実行するために必要です。

基本的に、Windows Azureテーブルストレージのようなものが必要ですが、集計関数が必要です。

あなたは何をお勧めします?

0 投票する
1 に答える
2575 参照

algorithm - リーダー選挙に関するいくつかのアイデア

リーダー選挙を実行しようとしています。最近はそれを実現するためにキーと値のストアを使用することを考えていますが、スケーラビリティと一貫性の問題に関してそのアイデアが信頼できるかどうかはよくわかりません. 実際の展開には数千のノードがあり、選択は中央機関や飼育係のようなサービスなしで行われる必要があります。

さて、私の質問は次のとおりです。

キー値ストア (できれば riak のような CA チューナブル) を使用してリーダー選挙を実行できますか? リーダーの選出に KV ストアを利用することの長所と短所は何ですか?

ありがとう!

編集:いじめっ子アルゴリズムのアプローチにはもう興味がありません。

0 投票する
1 に答える
243 参照

ruby - DRb メソッド アクセス

DRb で単純な分散システムを作成しています。

すべてのピアと、ブートストラップを行うサーバーが 1 つあります。そのサーバーには、「suggest_peer」、「start_service」、「stop_service」などのメソッドがいくつかあります。

ピアがサーバーに接続すると、3 つのメソッドすべてを呼び出すことができます。私は彼が最初のものだけを呼び出すことができるようにしたい.

また、サーバーを初期化するファイルがあり、サービスの開始、デバッグ、ログなどすべてを実行できるように、小さな cmd 行があります。そのコマンドラインで、最初のメソッドだけでなく、2 番目と 3 番目のメソッドも呼び出せるようにしたいと考えています。

どうやってやるの?ピアがサービスを停止するのを防ぐにはどうすればよいですか?
サービス メソッドをプライベートにすると、コマンド ラインから呼び出すことができなくなります。

0 投票する
1 に答える
908 参照

real-time - リアルタイム分散システムでのレイテンシの処理

ポーカー サーバーを実装しようとしています。HTTP サーバーは、すべてのポーカー ハンドの状態を処理するバックエンド サーバーにデータ パケットを転送します。任意のハンドで、プレイヤーは 10 秒以内に行動します (ベット、フォールド、コール、レイズなど)。10 秒以内に応答がない場合、サーバーは自動的にフォールドします。10 秒が経過したことを確認するために、いつアクションを受信する必要があるかを示すイベント リストが維持されます。これは時間順に並べられた優先キューであり、現在プレイされている各ポーカー ハンドは優先キューにエントリがあります。

最後のアクションから次のアクションが http サーバーに到達するまでに 9.99 秒が経過するため、次のシナリオを検討してください。アクションがバックエンド サーバーに転送されるまでに余分な時間が経過するため、合計で 10.1 秒が経過します。バックエンド サーバーはハンド フォールドを宣言しますが、技術的には 9.99 秒後に http サーバーに到着したため、アクションを処理したいと思います。解決策の 1 つは、ハンドがフォールドしたことを宣言する前に、9.99 秒のタイムスタンプが付けられたアクションが来るかどうかを確認する前に、バックエンドに余分な時間待機させることです。しかし、それでは次のハンドのプレイヤーがアクションを起こすまでに時間がかかります。

私が望む目標は

  1. ハンドをフォールドする代わりに、9.99 秒で http サーバーに到達するアクションを処理します。
  2. 箇条書き 1 で述べた問題を「解決」するためにアイドル状態で待機しなければならないことに起因する遅延を積極的に最小限に抑えます。

さまざまなソリューションとは?分散システムの専門家にとって、さまざまなソリューションのトレードオフに関する既知の文献はありますか。分散システムの文献で受け入れられると考えられるさまざまなソリューションを知りたいです。さまざまなアドホック ソリューションだけではありません。