0

map reduce ジョブの実行中に外部 API を呼び出すことの不都合についてお聞きしたいと思います。欠点はどれですか?

いくつかの例: マッパー内で住所をジオコーディングする必要があり、Google マップ API を呼び出すか、アイテムの関連要素を取得するために外部 DB を呼び出す場合など。

4

1 に答える 1

2

外部 API に DB 呼び出しがない限り、外部 API を呼び出しても問題ありません。多くの点で、これはロジックを書き直すよりも好まれます。多くの場合、MapReduce ジョブを、MapReduce 以外のコンテキストで記述されたラッパーのアラウンド ロジックにすぎないようにしたい場合があります。これにより、コードのテストが容易になります。

ただし、外部 DB 呼び出しを行うことは強くお勧めしません。これにより、すべての呼び出しがランダム アクセス呼び出しになるため、MapReduce ジョブの速度が大幅に低下します。さらに、数千の Map/Reduce タスクが同時に DB にヒットすると、DB が破綻する可能性があります。関連する要素が必要な場合は、すべての要素を HDFS に配置し、MapReduce で結合することをお勧めします。話している DB が Cassandra や HBase などの NoSQL ストアである場合、テーブル全体を HDFS にエクスポートするバッチ エクスポート機能があります。

于 2012-03-05T12:27:02.437 に答える