1

外部ソースから分散方式でファイルをダウンロードする必要があるプロジェクトがあります。私たちはすでに Hadoop に多額の投資を行っており、MapReduce を活用することを検討していますが、ETL よりも分散タスクとしての価値があります。

1) 誰かこれをやったことがありますか?

2) Reducer のない Mapper のみが必要ですか?

3) FTP/HTTP 接続の抽象的な実装を Mapper に渡す最良の方法は何ですか? --明確にするために、私が得ていたのは、統合テストを実行せずにこれを単体テストするための良い方法が必要であるため、FTP/HTTP をモックする方法が必要だということです。

4) MapReduce は、この種のものに最適な方法ですか? -- MapReduce を悪用していませんか?

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

4

3 に答える 3

2

これは、Nutch の動作に似た「音」です (ただし、Nutch についてはあまり詳しくありません)。

観察のためのいくつかのポイント:

  • 同じサーバーでホストされている複数の URL がある場合、ホスト名でパーティション分割してから Reducer でプルを実行すると、実際にメリットが得られる場合があります (プル元の URL の数によって異なります)。
  • コンテンツが「キャッシュ可能」で、同じ URL から何度も取得する場合、Hadoop クラスターとインターネットの間にキャッシュ/プロキシ サーバーを配置することでメリットが得られる可能性があります (会社と ISP は既にこれを行う)。ただし、一意の URL をヒットしている場合やコンテンツが動的である場合、キャッシュ/プロキシ サーバーに単一のボトルネックがあるため、これは実際には妨げになります。
于 2012-08-15T13:25:28.163 に答える
2

ストームを見たほうがいいと思います。これは、さまざまなソースからのデータ収集に非常に役立つスケーラブルなフレームワークです。これは本当にあなたがやろうとしていることです。map reduce を使用して処理を行うことはできますが、実際のコレクションには Storm などのフレームワークを使用する必要があります。

于 2012-08-16T02:45:11.077 に答える
1

この場合、インターネット接続がボトルネックになりやすいと思いますが、解決できると確信しています。

  1. 私はこれを正確に行ったことはありませんが、Mapper から Web サービスを呼び出して、サードパーティ API からメタデータを取得し、さらに処理する必要がありました。サードパーティの Web サービスはすぐにボトルネックになり、すべての速度が低下しました。
  2. この場合、削減するものは何もないため、はい (ダウンロードしたファイルをどこかに保存したいだけだと思います)。
  3. FTP/HTTP URL を HDFS に保存し、Mapper に HDFS から URL を読み込ませます。
  4. MapReduce がこの種の方法に最適な方法であるとはとても思えません。すでに述べたように、インターネット接続がボトルネックになりやすく、MR プログラムをあまりスケールアウトできないと思います。ダウンロード (および HDFS に保存) した後、MapReduce を使用してデータを処理する場合は、話が異なります。はい、この場合、あなたは MR を悪用していると言えます。
于 2012-08-15T03:10:53.923 に答える