2014-09-19 61 views
0

我無法在Hadoop YARN上爲Nutch 1.7運行多個獲取Map獲取。在Hadoop羣集上運行多個Apache Nutch獲取地圖任務

我正在使用bin/crawl腳本,並進行了以下調整以觸發具有多個地圖任務的提取,但我無法這樣做。

  1. 將maxNumSegments和numFetchers參數添加到生成階段。 $斌/ Nutch的產生$ commonOptions $ CRAWL_PATH/crawldb $ CRAWL_PATH /段-maxNumSegments $ numFetchers -numFetchers $ numFetchers -noFilter

  2. 刪除了TOPN放慢參數並刪除了noParsing參數,因爲我想解析當時發生的提取。 $斌/ Nutch的取$ commonOptions -D fetcher.timelimit.mins = $ $ timeLimitFetch CRAWL_PATH /分段/ $ SEGMENT -threads $ numThreads#-noParsing#

的生成相位不產生多於一個的段。

因此,獲取階段不會創建多個地圖任務,我相信腳本寫入它不允許fecth感染多個segemnts,即使生成要生成多個段。

有人能讓我知道,他們如何讓腳本在分佈式Hadoop集羣中運行?或者如果有不同版本的腳本應該使用?

謝謝。

回答

0

您是否在使用Nutch 1.xx?在這種情況下,Generator類會查找一個名爲「mapred.job.tracker」的標誌並嘗試查看它是否是本地的。該屬性在Hadoop2中已被棄用,並且默認值被設置爲本地。您必須將屬性的值覆蓋爲本地以外的值,Generator將爲這些段生成多個分區。

0

我最近遇到了這個問題,並認爲基於Keith的答案提供關於如何解決此問題的更全面的解釋是個好主意。

我已經用Nutch 1.10和Hadoop 2.4.0測試過了。

正如基思所述Generator.java上線542的如果塊讀取mapred.job.tracker屬性和設置爲1可變numLists的值,如果屬性是local。該變量似乎控制減少任務的數量,並影響地圖任務的數量。

改寫上述財產在mapred-site.xml修復了這個值:

<property> 
    <name>mapred.job.tracker</name> 
    <value>distributed</value> 
</property> 

(或者你喜歡的,除了local任何其他值)。

問題是這是不夠的,在我的情況下,生成多個地圖任務。我還必須更新runtime/deploy/bin/crawl腳本中numSlaves參數的值。在Nutch 1中我沒有發現任何這個參數。x docs,所以經過一些試驗和錯誤之後,我偶然發現了它。

############################################# 
# MODIFY THE PARAMETERS BELOW TO YOUR NEEDS # 
############################################# 

# set the number of slaves nodes 
numSlaves=3 

# and the total number of available tasks 
# sets Hadoop parameter "mapred.reduce.tasks" 
numTasks=`expr $numSlaves \* 2` 

... 
相關問題