我正在尝试评估Nutch/Solr/Hadoop是否适合我的任务。
PS:之前我试图集成Nutch (1.4)和Hadoop,看看它是如何工作的。
这是我试图实现的总体目标,a)从种子URL开始,然后爬行并解析/保存数据/链接-- Nutch crawler无论如何都要做这件事。
b)然后能够从Java客户端查询抓取的索引-(可以使用SolrJ客户端)
c)因为Nutch (从1.4.x开始)已经在内部使用Hadoop。我将只安装Hadoop并在nutch-**.xml中进行配置
d)我希望Nutch将抓取的索引保存到亚马逊S3,也希望Hadoop使用S3作为文件系统。这有可能吗?或者甚至是值得的?
e)我在一个论坛上读到,在Nutch2.0中,有一个使用GORA的数据层,可以将索引保存到HBase等。:-(有没有人建议抓取2.0“正在进行中”的主干并开始使用它,希望迟早能得到一个发布的lib?
PS:我仍然在尝试弄清楚Nutch在内部如何/何时/为什么/在哪里使用Hadoop。我只是找不到任何书面文档或tutorials..Any在这方面的帮助,也非常感谢。
如果你正在阅读这一行,那么非常感谢你阅读这篇文章:-)
发布于 2011-09-15 04:57:58
Hadoop可以在本地使用S3作为其底层文件系统。在EC2中运行Hadoop时,我使用这种方法获得了非常好的结果,无论是使用EMR还是您自己/第三方的Hadoop。当在EC2之外使用Hadoop时,我不建议使用Hadoop作为底层文件系统,因为带宽限制可能会抵消Hadoop给您带来的任何性能提升。用于Hadoop的S3适配器是由亚马逊开发的,是Hadoop核心的一部分。Hadoop对待S3就像对待HDFS一样。有关在S3中使用Hadoop的更多信息,请参阅http://wiki.apache.org/hadoop/AmazonS3。
Nutch被设计为在Hadoop集群上作为作业运行(当处于“部署”模式时),因此在其发行版中不包含Hadoop jars。但是,因为它是作为Hadoop作业运行的,所以它可以访问Hadoop支持的任何底层数据存储,比如HDFS或S3。在“本地”模式下运行时,您将提供自己的本地Hadoop安装。在“部署”模式下完成爬行后,数据将存储在分布式文件系统中。出于性能原因,建议您等待索引完成,然后将索引下载到本地计算机进行搜索,而不是在DFS中进行搜索。有关在Hadoop中使用Nutch的更多信息,请参阅http://wiki.apache.org/nutch/NutchHadoopTutorial。
关于HBase,我有很好的使用经验,尽管不是针对您的特定用例。我可以想象,对于随机搜索,Solr可能比HBase更快,功能更丰富,但这是有争议的。HBase可能值得一试。在2.0发布之前,您可能希望编写自己的Nutch- to -HBase连接器,或者暂时坚持使用Solr。
https://stackoverflow.com/questions/7391500
复制相似问题