全部
我想知道nutch如何與hadoop羣集一起工作。它如何將工作分解到其他節點?它如何確保集羣中的不同節點不會請求相同的URL?
謝謝。Nutch如何與Hadoop集羣一起工作?
4
A
回答
5
的nutch的階段是: 進樣 - >生成 - >獲取 - >解析 - >更新 - >索引
這些當中提取相是其中的nutch發送請求的URL的位置(並且因此我會只是在談論這個階段,並在回答中產生階段。)
生成階段創建crawldb中的url的獲取列表。創建fetchlist時,屬於同一主機的URL通常落在同一分區中,因爲分區功能基於主機名。所以,最終取名單將是這樣的:
fetch list 1 : all urls of host a1, b1, c1
fetch list 2 : all urls of host a2, b2, c2
.............
.............
現在,當取相讀取這些fetchlists,通過/分配獲取階段的一個映射每個fetchlist處理。所以,
number of reducers in generate partition phase
= the number of fetchlists created
= number of maps in fetch phase
如果取相映射器獲取主機A的URL的一羣,沒有其他的地圖都會有相同的主機的網址。 Offcourse,每張地圖可以有多個主機的網址,但是沒有其他的地圖製作者會從這些主機獲得網址。
現在深挖的映射器獲取:
這將有發言權N個主機H1,H2的網址,... HN。然後,根據主機形成fetchqueue。所有的URL(獲取項目)都填充到它們各自主機的提取隊列中。 Fetcher線程在fetchqueue上進行輪詢,從那裏獲取urls併發送請求並將結果寫回hdfs。完成後,他們會尋找其他可以處理的高級網頁(urls)。
我認爲我可以設法以可理解的方式把混亂。有關更多詳細信息,請參閱Fetcher.java工作代碼。
注意:網址也可以基於IP進行分組。即使你可以調整,以使nutch不會根據主機名/ IP對網址進行分組。這兩件事都取決於年齡配置。默認情況下,它將使用主機名來分組網址。
相關問題
- 1. Hadoop集羣工作
- 2. 優化hadoop集羣上的nutch性能
- 3. Hadoop集羣與碼頭羣
- 4. 如何使akka-tree與akka.net集羣一起工作?
- 5. Nutch 2.2.1設置與hadoop集羣上的HBase
- 6. Hadoop的集超羣不起作用
- 7. Hadoop集羣與Ubuntu和Windows
- 8. weblogic集羣如何工作?
- 9. 爲Hadoop集羣
- 10. 讓Sails.js與Node.js集羣模塊一起工作
- 11. 在現有的Hadoop集羣上運行Nutch
- 12. 在hadoop多羣集環境中運行nutch時出錯
- 13. HBase和hadoop一起工作
- 14. 設置hadoop集羣
- 15. Hbase Hadoop集羣.. java.io.IOException:java.lang.NoSuchMethodExceptio
- 16. 在hadoop集羣上安裝spark集羣
- 17. 如何管理的Hadoop集羣
- 18. 如何設置hadoop集羣優先級?
- 19. Hadoop集羣JAVA_HOME路徑不與Oozie的
- 20. 如何將一個Hadoop集羣中的數據複製到另一個Hadoop集羣?
- 21. 臨時掛起hadoop節點 - 後臺hadoop集羣
- 22. solr集羣組件如何工作?
- 23. 數據庫集羣如何工作?
- 24. finagle kestrel集羣如何工作
- 25. Gmaps4rails:集羣不起作用?
- 26. HBase羣集不起作用
- 27. 集羣不起作用
- 28. 如何將janusgraph與現有的hadoop集羣進行整合
- 29. Hadoop集羣HTTP端口的名稱節點不工作
- 30. 在多節點集羣中運行Hadoop無法正常工作