全部
我想知道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无法正常工作