Я использую Nutch 1.15 с кластером hadoop 2.7.2 (Стандартный A4m v2 (4 vcpus, 32 ГБ памяти), имеющий 1 главный / подчиненный узел и 3 подчиненных узла, я попытался отсканировать 9 URL-адресов и настроил mapreduce.job.reduces = 10, topN = 9000 (1000 URL / хост), глубина = 4, generate.max.count = 1000 и mapreduce.map/reduce.java.opts= -Xmx4g
Насколько я понимаю, crawl-generate будет иметь 10 частей по одной для каждого хоста, и каждая часть будет содержать (max urls = 9000/10 = 900 urls)
но то, что я вижу, состоит в том, что несколько частей не имеют записей, а несколько частей содержат URL-адреса нескольких хостов, верно ли мое понимание
Сканирование завершается с указанной выше конфигурацией за 35 минут
когда я запускаю 9 URL в локальном режиме без hadoop / hdfs (4 экземпляра этого локального режима), сканирование завершается за 23 минуты
конфигурация для локального режима mapreduce.job.reduces = н / д topN = 1000 (так как один URL / хост выбирается за раз) глубина = 4, генерировать
ниже приведен фрагмент журнала, в котором я вижу, что выходные записи карты всегда составляют половину записей разлива
Map input records=814
Map output records=2025
Map output bytes=96541492
Map output materialized bytes=45547532
Input split bytes=648
Combine input records=0
Combine output records=0
Reduce input groups=981
Reduce shuffle bytes=45547532
Reduce input records=2025
Reduce output records=2025
Spilled Records=4050
Shuffled Maps =8
Failed Shuffles=0
Merged Map outputs=8
GC time elapsed (ms)=5260
CPU time spent (ms)=143320
Physical memory (bytes) snapshot=7797211136
Virtual memory (bytes) snapshot=38557540352
Total committed heap usage (bytes)=8712617984
и ниже - моя конфигурация mapred-site.xml
<property>
<name>mapreduce.map.memory.mb</name>
<value>5012</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>5012</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx4g -XX:+UseCompressedOops</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx4g -XX:+UseCompressedOops</value>
</property>
<property>
<name>mapreduce.job.maps</name>
<value>2</value>
<description>
define mapred.map tasks to be number of slave hosts
</description>
</property>
<property>
<name>mapreduce.job.reduces</name>
<value>4</value>
<description>
define mapred.reduce tasks to be number of slave hosts
</description>
</property>
<property>
<name>mapreduce.reduce.shuffle.parallelcopies</name>
<value>10</value>
</property>
<property>
<name>mapreduce.task.io.sort.factor</name>
<value>100</value>
</property>
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>1048</value>
</property>
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.DefaultCodec</value>
</property>
что я делаю не так или чего мне не хватает?