4

3 つのワーカー ノードを備えた Elastic MapReduce で Nutch を実行しています。私は Nutch 1.4 を使用しており、(ユーザー エージェントを追加した後) 同梱されているデフォルトの構成を使用しています。

ただし、30,000 個のドメインのリストをクロールしているにもかかわらず、解析ステップは 3 つすべてで実行されますが、フェッチ ステップは 1 つのワーカー ノードからのみ実行されます。

3 つのノードすべてからフェッチ ステップを実行するにはどうすればよいですか?

*編集* 問題は、mapred.map.tasks プロパティを Hadoop クラスターのサイズに設定する必要があることでした。これはここに文書化されています

4

1 に答える 1

3

デフォルトでは、nutch はホストに基づいて URL を分割します。の対応するプロパティnutch-default.xmlは次のとおりです。

<property>
  <name>partition.url.mode</name>
  <value>byHost</value>
  <description>Determines how to partition URLs. Default value is 'byHost', 
  also takes 'byDomain' or 'byIP'. 
  </description>
</property>

セットアップで値を確認してください。

あなたの問題は、次の質問に対する回答を得ることで診断できると思います。

  1. フェッチ ジョブ用に作成されたマッパーの数は? 複数のマッパーが生成され、1 つを除いてすべてが早期に終了した可能性があります。
  2. generate コマンドで使用されるtopN 値は何ですか? これが低い場合、30K ページがあるにもかかわらず、フェッチ フェーズに送信されるページは非常に少なくなります。
  3. generate コマンドでnumFetchers オプションを使用しましたか? これは、フェッチ ジョブ用に作成されるマップの数を制御します。
  4. generate-partition ジョブに対していくつの削減が生成されましたか? この値が 1 の場合、フェッチ フェーズで 1 つのマップのみが作成されます。generate partition の出力は、fetch フェーズに渡されます。生成によって作成されるパーツ ファイル (つまり、生成のリデューサー) の数は、フェッチ ジョブに対して作成されるマップの数と同じです。
  5. Hadoop の mapred.map.tasks の設定は何ですか? reduce に対応する値は何ですか?
于 2012-04-22T09:27:50.487 に答える