Nutch报错和解决方法

2019-03-27 01:21|来源: 网路

Indexer: java.io.IOException: Job failed!

环境:nutch1.8  local模式 solr服务正常

ParseSegment: finished at 2014-07-14 21:21:19, elapsed: 00:00:35
CrawlDB update
CrawlDb update: starting at 2014-07-14 21:21:21
CrawlDb update: db: crawl/crawldb
CrawlDb update: segments: [crawl/segments/20140714190910]
CrawlDb update: additions allowed: true
CrawlDb update: URL normalizing: false
CrawlDb update: URL filtering: false
CrawlDb update: 404 purging: false
CrawlDb update: Merging segment data into db.
CrawlDb update: finished at 2014-07-14 21:21:30, elapsed: 00:00:09
Link inversion
LinkDb: starting at 2014-07-14 21:21:33
LinkDb: linkdb: crawl/linkdb
LinkDb: URL normalize: true
LinkDb: URL filter: true
LinkDb: internal links will be ignored.
LinkDb: adding segment: crawl/segments/20140714190910
LinkDb: merging with existing linkdb: crawl/linkdb
LinkDb: finished at 2014-07-14 21:21:42, elapsed: 00:00:09
Dedup on crawldb
Indexing 20140714190910 on SOLR index -> http://192.168.122.104:8080/solr
Indexer: starting at 2014-07-14 21:21:55
Indexer: deleting gone documents: false
Indexer: URL filtering: false
Indexer: URL normalizing: false
Active IndexWriters :
SOLRIndexWriter
        solr.server.url : URL of the SOLR instance (mandatory)
        solr.commit.size : buffer size when sending to SOLR (default 1000)
        solr.mapping.file : name of the mapping file for fields (default solrindex-mapping.xml)
        solr.auth : use authentication (default false)
        solr.auth.username : use authentication (default false)
        solr.auth : username for authentication
        solr.auth.password : password for authentication


Indexer: java.io.IOException: Job failed!
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1357)
        at org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:114)
        at org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:176)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:186)

解决方法: 

1、查看nutch日志发现是nutch在向solr请求的时候有Bad Request导致的

2、查看solr日志(在solr的web页面上的logging)中查看找到org.apache.solr.common.SolrException: ERROR: [doc=http://18.ifeng.com/] unknown field 'anchor'

3、从2中可以看出是缺少叫做'anchor'的field,那么在solr的solr/collection1/conf/schema.xml文件中增加'anchor'字段

No agents listed in 'http.agent.name' property

原因:$NUTCH_HOME/conf/nutch-site.xml中没有设置http.agent.name值,nutch较新版本(TODO:确切版本待考证)中这个值为空的话就会报这个错误。

解决:这个值其实就是User-Agent值,可以填写浏览器UA值以达到伪装成浏览器访问的目的。注意!填写后需使用ant重新编译才能生效。





转自:http://my.oschina.net/paddy0826/blog/290591

相关问答

更多
  • 电脑自动重启的可能原因及解决办法 >>>>一、软件 >>>>1.病毒破坏 >>>>自从有了计算机以后不久,计算机病毒也应运而生。当网络成为当今社会的信息大动脉后,病毒的传播更加方便,所以也时不时的干扰和破坏我们的正常工作。比较典型的就是前一段时间对全球计算机造成严重破坏的“冲击波”病毒,发作时还会提示系统将在60秒后自动启动。其实,早在DOS时代就有不少病毒能够自动重启你的计算机。 >>>>对于是否属于病毒破坏,我们可以使用最新版的杀毒软件进行杀毒,一般都会发现病毒存在。当然,还有一种可能是当你上网时被人恶 ...
  • 错误1:wizard安装最后一页,出现cannot create Windows service for mysql.error:0 错误 解决方法:打开命令行 输入 sc delete mysql 命令即 C:>sc delete mysql [SC] DeleteService SUCCESS 重起电脑,或者卸载后重启再安装,这样就好了。我是卸载后重启的。 卸载重新安装要注意一个问题,在控制面板中卸载后,要去c:\Documents and Settings\All Users\Application ...
  • 设置电脑显示隐藏文件夹 打开C:\ProgramData,找到MySQL文件夹,并将其删除 重新运行MySQL安装程序,顺利安装MySQL
  • 设置电脑显示隐藏文件夹 打开C:\ProgramData,找到MySQL文件夹,并将其删除 重新运行MySQL安装程序,顺利安装MySQL
  • ceng 网用吗? 那个是需要使用外接的网卡 不是本本自带的!! 另外外置网卡有两种一种适合接受,一种是专门发射的! 建议还是多先百度学习!! 互联网上的资料还是很全面的!! 系统家 taodaole.net 为您解答·· 欢迎更多朋友来加入 百度知道 《系统家》团队
  • 阿里云配置ssl证书常见碰到几个问题: 1、SSL证书安装完毕后浏览器无法访问。 解决方案:登陆阿里云控制面板、云安全规则设置:允许443端口。 2、SSL证书安装完毕后显示证书不信任。 解决方案:可能由于网站启用了CDN,如果启动了,需要去支持SSL证书的CDN提供商安装。 如果没有启用CDN,但是也是不信任的情况下,需要您重新安装证书,查看域名是否直接解析到自己的服务器IP,如果没有需要重新解析到自己的服务器,证书安装到哪台服务器,服务器就需要解析到哪里。 3、SSL证书安装完毕后发现部分浏览器无法访问 ...
  • 我认为它们与内部相同,也就是缓冲区大小。 在处理了足够多的时间之后,我创建了一个真正的粗略实用程序脚本,用于生成使用列的实际大小的骨架控制文件。 它使我获得了90%的方式,并没有列大小问题。 它在内存上可能会更好,因为如果列较小,它不会使用可用的完整255个字符。 如果你愿意,试试看。 无论如何,它可能会给你一些想法。 /********************************************************************************************** ...
  • 您正在有效地重新发明轮子,因为令牌需要有效的会话进行验证,因此只会重复会话的安全层,而不会添加任何额外的内容。 这相当于要求某人输入密码,然后再次要求确认。 它可能会让每个人都感觉更好,但是如果密码被破坏,它只会减缓攻击,但不会阻止它。 这并不意味着你不应该认真对待这些事情或者放弃你的尝试。 我的理念是,表单内容(通过GET或POST传入的内容)应与其他逻辑(如安全和计算)分开,并且服务器不应将用户提供的数据视为除用户定义的数据之外的其他任何数据,提供的数据。 理想情况下,任何人都可以发布任何表单操作,并且 ...
  • 这不是一个错误。 如您所知, m_p += Get(); 真的是m_p = m_p + Get(); 。 编译器可以自由选择添加的评估顺序。 因此,获取m_p ,然后执行Get() ,然后执行加法是有效的,并创建刚刚发布的代码。 您的第二个示例是不同的,因为您创建了一个新的序列点。 在这种情况下, Get()总是首先被评估。 That's not a bug. As you know, m_p += Get(); is really m_p = m_p + Get();. The compiler is f ...