【发布时间】:2014-01-15 10:55:01
【问题描述】:
我已参考本教程 (http://wiki.apache.org/nutch/Nutch2Tutorial) 来设置 Nutch 2.2.1.with Hbase。我已经完成了教程中给出的设置,但是没有明确提到如何爬取数据并将其存储到 Hbase 表中。
能否请我参考一些相关的链接/书籍?
【问题讨论】:
标签: apache hadoop web-crawler hbase nutch
我已参考本教程 (http://wiki.apache.org/nutch/Nutch2Tutorial) 来设置 Nutch 2.2.1.with Hbase。我已经完成了教程中给出的设置,但是没有明确提到如何爬取数据并将其存储到 Hbase 表中。
能否请我参考一些相关的链接/书籍?
【问题讨论】:
标签: apache hadoop web-crawler hbase nutch
对我最有帮助的是:
http://sujitpal.blogspot.cz/2011/01/exploring-nutch-20-hbase-storage.html
映射到 hbase 在这里定义 NUTCH_HOME/conf/gora-hbase-mapping.xml。 因此,如果一切配置正确,抓取脚本应该会为您存储它。
我有相同的配置,但有很多问题要让它工作,这里有一些提示:
提示1:注意表名
我还配置了这些属性:
<property>
<name>storage.schema.webpage</name>
<value>webpage</value>
</property>
<property>
<name>storage.crawl.id</name>
<value>babu</value>
</property>
当您在 script write simple 'babu' -> $CRAWL_ID 中提供参数 -crawlId 时,此配置会将数据抓取到 hbase 中的 babu_webpage 表中。
$bin/nutch fetch $commonOptions -D fetcher.timelimit.mins=$timeLimitFetch $batchId -crawlId $CRAWL_ID -threads 50
提示 2:如果您的表名不好,Nutch 仍然会在控制台成功时写入。
提示3:如何简单查看hbase中是否有爬取的东西:
转到 ./bin/hbase 外壳
list
scan 'babu_webpage'
【讨论】:
我关注了这个tutorial,然后我运行 Nutch 并毫无问题地为 Elasticsearch 建立索引。为您提供的相关信息是文章末尾的六个命令。
bin/nutch inject <seed-url-dir>
bin/nutch generate -topN <n>
bin/nutch fetch -all
bin/nutch parse -all
bin/nutch updatedb
bin/nutch elasticindex <clustername> -all
我在 NUTCH_HOME 中创建了 urls 目录,我在其中放置了文件 seed.txt。在这个文件中是要抓取的 url 地址。接下来的五个命令我放入脚本文件并在不定式循环中运行它。如果您只遵循您的教程,您当然不必使用最后一个命令 bin/nutch elasticindex。 topN 数字我坐到了 50,因为数字越大,它有时会卡住。但它只能在我的情况下。
【讨论】: