全部
我想知道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. Hadoop的集超羣不起作用
- 5. 如何估算Hadoop集羣?
- 6. 爲Hadoop集羣
- 7. weblogic集羣如何工作?
- 8. 在現有的Hadoop集羣上運行Nutch
- 9. Hbase Hadoop集羣.. java.io.IOException:java.lang.NoSuchMethodExceptio
- 10. 在hadoop集羣上安裝spark集羣
- 11. Hadoop集羣JAVA_HOME路徑不與Oozie的
- 12. 數據庫集羣如何工作?
- 13. 集羣不起作用
- 14. 如何將janusgraph與現有的hadoop集羣進行整合
- 15. Hadoop集羣 - 節點已啓動但不工作
- 16. Hadoop集羣HTTP端口的名稱節點不工作
- 17. Hadoop集羣和MapReduce邏輯
- 18. 無法創建Hadoop集羣
- 19. 沒有Hadoop的Canopy集羣
- 20. java.lang.NoClassDefFoundError:上運行Hadoop集羣
- 21. Hadoop多主集羣設置
- 22. Hadoop的2節點集羣
- 23. 從eclipse訪問Hadoop集羣
- 24. 整合多個Hadoop集羣
- 25. 設置(Windows)Hadoop集羣
- 26. 如何使用Hadoop Streaming在本地Hadoop集羣中運行MRJob?
- 27. 如何從Web應用程序提交作業到hadoop羣集?
- 28. 在Hadoop羣集上運行多個Apache Nutch獲取地圖任務
- 29. apache hadoop,hbase和nutch組件分佈爲4個服務器集羣
- 30. 一羣程序員如何在服務器上一起工作?