2012-04-22 8 views
3

私はNutchをElastic MapReduceに3つのワーカーノードで実行しています。私はNutch 1.4を使用しています。デフォルトの設定は(ユーザエージェントを追加した後に)提供されています。Nutchは、クラスタが5つのノードを合計している場合、1つのHadoopノードでフェッチ・ステップを実行するのはなぜですか?

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

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

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

答えて

2

デフォルトでは、ホストに基づいた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. topNの値はgenerateコマンドで使用されましたか?これが低い場合は、30Kのページを持っているにもかかわらず、フェッチフェーズに送られることは非常に少なくなります。
  3. generateコマンドにnumFetchersオプションを使用していましたか?これは、フェッチジョブ用に作成されたマップの数を制御します。
  4. パーティション生成ジョブで生成されたリビジョン数はどれですか?この値が1の場合、フェッチフェーズでマップが1つだけ作成されます。生成パーティションの出力はフェーズをフェッチするために与えられます。生成によって生成されるパーツファイルの数(すなわち、生成のための減速器)は、フェッチジョブのために作成されるマップの数に等しい。
  5. hadoopのmapred.map.tasksの設定とは何ですか? reduceに対応する値は何ですか?
+0

1)numFetchersオプションがで、クロールのクラスに対して有効であるようにそれはいないようです)私はのtopN 3を指定しなかった)だけで1マッパーがフェッチステップ 2用に生成されていることが表示されますnutch-1.4.jobアーカイブ 4)約200 5)私は値を設定しなかったので、EMRのデフォルト値です。 – cberner

+0

ステップ4で説明したように、パーティションの生成ジョブに単一のレデューサーしかない場合はどうなりますか?フェッチが1つのマップタスクでのみ実行されている状況で実行されています。これには、パーティション生成ジョブの単一のレデューサーが先行しています。 Nutchに複数のマップタスクをフェッチさせるにはどうすればよいですか?パーティション生成ジョブに複数のレデューサーを強制する設定はありますか? – user1965449

関連する問題