Nutch 2.3 Hadoop 2.7 Solr 5.3 Hbase 0.98.14 搜索引擎集群环境搭建
折腾一个月,呕心沥血而成,欢迎测试:
Nutch 2.3
local 模式
把 hbase 0.98.14 的 相关jar 包拷贝到local/lib
查看帮助
1 | bin/nutch |
查看 Web UI
运行抓取:(注意:如果你用的solr是下面5.3的配置,此时 solr 的链接是 http://localhost:8983/solr/solr/,这里有两个solr,而查看 Web UI 的时候只有一个
1 | ./bin/crawl |
~/urls 是存放了种子url的目录
TestCrawl 是crawlId,这会在HBase中创建一张以crawlId为前缀的表,例如TestCrawl_Webpage。
http://localhost:8983/solr/solr/ , 这是Solr服务器
2,numberOfRounds,迭代的次数
查看结果:
1 | ./bin/nutch readdb -crawlId TestCrawl -stats |
在 hbase shell 中运行 scan 查看表中内容时,对于列的含义不确定时可以查看 conf/gora-hbase-mapping.xml 文件,该文件定义了列族及列的含义。
Hadoop 2.7 (完全分布式)
如果遇到本地库无法加载的情况,请参考本文解决Unable to load native-hadoop library for your platform
Solr 5.3
下载解压
example/example-DIH 包含了完整的solr home配置,拷贝到server/solr
1 | cp -rf /disk2/solr/solr-5.3/example/example-DIH/solr/* /disk2/solr/solr-5.2.1/server/solr/ |
解决 Nutch 运行中可能遇到的 Error 404: Prob accessing /solr/solr/update. Reason: Not Found
1 | cd /disk2/solr/solr-5.3/server/solr |
为 Nutch crawl 运行,还要修改/disk2/solr/solr-5.3/server/solr/solr/conf/schema.xml,加上:
1 | <field name="host" type="string" stored="false" indexed="true"/> |
Hbase 1.0.1.1 (完全分布式) 0.98.14 也可以。
需要编辑 conf/hbase-site.xml
报错处理
1 | ERROR solr.SolrIndexWriter - Missing SOLR URL. Should be set via -D solr.server.url |
这个就是上面说的 solr 的链接错误,或者没有启动。
1 | IndexingJob: starting SolrIndexerJob: java.lang.RuntimeException: job failed: |
同上。
1 | java.lang.ClassNotFoundException: org.cloudera.htrace.Trace |
把hbase/lib 下面的 htrace* 拷贝到hadoop/share/hadoop/mapreduce/ 下面
1 | Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration |
把hbase/lib 下面的 hbase* 拷贝到hadoop/share/hadoop/mapreduce/ 下面
参考资料
NUTCH2.3 hadoop2.7.1 hbase1.0.1.1 solr5.2.1部署(三),hadoop2.7安装
Nutch 1.X Tutorial
Nutch 2.X Tutorial
Nutch 1.x REST API v1.0