提高Nutch區域網抓取的速度

2021-08-31 02:33:45 字數 1382 閱讀 5682

如果想要提高nutch區域網抓取的速度,大家第乙個想到肯定是-threads .但是那是錯誤的,如果只是單單增大執行緒數,那根本於事無補。

通過下面這組測試,我們看看-threads 是否起作用。首先在本地apache2下建立兩個**,寫乙個簡單的rakefile來幫助完成測試。設定depth=3 ,下面是rakefile的內容:

threads=1

depth=3

task:default => [:crawl]

task:crawl => [:clean] do

t=time.now

sh "bin/nutch crawl myurl -dir crawl -depth # -threads #"

puts time.now-t

endtask:clean do

sh "rm -rf crawl"

end

threads的值分別為1,5,10 結果如下表:

執行緒數時間

1891.001462

5889.560529

10878.812949

從上面**可以看出,這根本一點作用都沒有。第一種提高速度的方法就是減少抓取之間的延遲時間,我們可以通過修改conf/nutch-default.xml中fetcher.server.delay 來減少延遲時間。

fetcher.server.delay

抓取器在同一伺服器的逐次請求所延遲的秒數

我們試試減小它的值為1.0(原先的值為5.0)。經過測試,結果如下:

執行緒數時間

1482.807096

5488.666853

10486.67904

顯然速度提高了,但是執行緒數還是起沒有作用,原因就在於conf/nutch-default.xml中fetcher.threads.per.host 配置為1。那麼第二種方法就是同一時刻允許多個執行緒訪問同一主機。

fetcher.threads.per.host

這個值允許同一時刻訪問一台主機的最大執行緒數

如果這個配置為1,同一時刻只允許乙個執行緒,啟動多少的執行緒都沒用。下面我們增大這個配置為5,測試結果如下:

執行緒數時間

1484.754918

5384.201041

10332.934009

很明顯隨著執行緒數的增大,抓取速度也在增大。如果還想再提高速度的話,可以減小抓取之間的延遲時間。不過不是修改fetcher.server.delay ,而是修改fetcher.server.min.delay 。這個配置是設定抓取器在同一伺服器的逐次請求所延遲最小的秒數,這個值僅當fetcher.threads.per.host 屬性值比1大時適用。

區域網是什麼 區域網的介紹

區域網 local area network,l是指在某一區域內由多台計算機互聯程式設計客棧成的計算機組。一般是方圓幾千公尺以內。區域網可以實現檔案管理 應用軟體共享 印表機共享 工作組內的日程安排 電子郵件和傳真通訊服務等功能。區域網是封閉型的,可以由辦公室www.cppcns.com內的兩台計算...

如何使用PCATTCP測試區域網傳輸速度

pcattcp是一款不錯的測試區域網網路速度的軟體,下面介紹下使用方法 1 伺服器端 在伺服器端執行如下命令 c pcattcp r 執行後,提示如下 pcausa test tcp utility v2.01.01.08 tcp receive test local host www b722d7...

區域網問題的設定

計算機無法訪問,您可能沒有許可權使用網路資源.的解決方法 位元論壇h a z kj e 1 安裝 nwlink ipx spx netbios compatible transport protocol協議。q n6g 2 開啟 guest賬號 右擊我的電腦 管理 使用者有個 guest,雙擊之去掉...