2017-06-23 14:04:33,435 WARN mapred.LocalJobRunner - job_local860080165_0001
java.lang.Exception: org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: This IndexSchema is not mutable.
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
Caused by: org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: This IndexSchema is not mutable.
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:491)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:197)
at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:117)
解决方法:
reference:https://stackoverflow.com/questions/31719955/solr-error-this-indexschema-is-not-mutable
在solrconfig.xml文件中将AddSchemaFieldsUpdateProcessorFactory部分从节点updateRequestProcessorChain中注释掉。
知其然和所以然:
下面是solrconfig.xml文件中对updateRequestProcessorChain的解释:
<!-- Add unknown fields to the schema An example field type guessing update processor that will attempt to parse string-typed field values as Booleans, Longs, Doubles, or Dates, and then add schema fields with the guessed field types. This requires that the schema is both managed and mutable, by declaring schemaFactory as ManagedIndexSchemaFactory, with mutable specified as true. See http://wiki.apache.org/solr/GuessingFieldTypes --> <updateRequestProcessorChain name="add-unknown-fields-to-the-schema"> ... </updateRequestProcessorChain>
schemaFactory在上文中提到了,它可以指定两个值:
1)ClassicIndexSchemaFactory(默认值):需要使用schema.xml文件,并且只能通过手动修改这个问题;只在collection加载的时候加载。不允许Schema API来修改schema。
2)ManagedIndexSchemaFactory:可以通过Schema API来修改schema,不会再读schema.xml文件,而是取managedSchemaResourceName中定义的资源
我的solrconfig.xml中并未指定schemaFactory的值,即使用了ClassicIndexSchemaFactory,执行中不准许修改schema。
AddSchemaFieldsUpdateProcessorFactory:如果输入的document包含了不匹配schema的feilds,这些fields会动态的添加到schema中,可见它是用于ManagedIndexSchemaFactory的配置。不属于我们这种情况。
相关推荐
总的来说,Nutch+Solr+Hadoop 的框架搭建涉及多个组件的安装、配置和协同工作。理解这些组件的功能和相互之间的关系,以及如何通过脚本和配置文件控制它们,是成功搭建和使用该框架的关键。这个教程提供了详细步骤,...
nutch2.3+hbase0.94.14+hadoop1.2.1安装文档.txt )
( Nutch,第1部分:爬行(译文) ( Nutch,第1部分:爬行(译文)
《Nutch入门经典翻译1:Introduction to Nutch, Part 1: Crawling》一文深入介绍了Nutch这一开源网络爬虫框架的基本概念、体系结构及其关键组件,为初学者提供了全面的理解视角。以下是对该文章核心知识点的详细解读...
Nutch 是一个开源的全文搜索引擎框架,主要用于网络数据抓取,是Java开发的,因此它为Java开发者提供了一个构建大规模网络爬虫的平台。在Java环境下结合Eclipse IDE,我们可以轻松地开发和调试Nutch爬虫项目。下面将...
Nutch2.3.1是Apache Nutch的一个稳定版本,它是一个开源的网络爬虫框架,主要用于抓取、解析和索引互联网上的网页内容。在本文中,我们将深入探讨如何搭建Nutch2.3.1的运行环境,以便进行网页抓取和分析。 **一、...
### Windows下cygwin+MyEclipse 8.5+Nutch1.2+Tomcat 6.0 本文旨在详细介绍如何在Windows环境下搭建基于cygwin、MyEclipse 8.5、Nutch 1.2及Tomcat 6.0的开发环境,并对每个步骤进行深入解析。 #### 一、Cygwin的...
本文将详细介绍 Apache Nutch 1.7 在 Windows 和 Linux 下的安装过程,包括安装前的准备工作、安装 Cygwin、安装 Nutch 1.7、测试 Nutch 1.7 以及与 Solr 结合使用等内容。 1. 准备工作 在安装 Apache Nutch 1.7 ...
《Lucene 2.4与Nutch学习笔记:在多文档中搜索关键词》 Lucene是一个高性能、全文检索库,而Nutch则是一个开源的网络爬虫项目,两者结合使用,能够实现对大量文本文档的高效搜索和索引。这篇学习笔记主要探讨如何...
本项目是基于Apache Nutch和Solr开发的AJAX页面内容爬取与处理设计源码,主要使用Java进行开发。项目共包含1064个文件,其中Java源代码文件458个,XML配置文件181个,文本文件81个,HTML页面文件56个,JPG图片文件56...
OCR_FontsSearchEngine, 一种超立方体Nutch和PHP的OCR搜索引擎 Silex框架 ;thiagoalessio ;nutch1.10+solr4.10.4 ;``` shell
Nutch抓取指定网址数据,存储在HBase数据库中,存储过程由zookeeper管理。脚本调用索引器部件将数据索引化,经过索引化的数据被前端检索查询,最后前端展示查询结果,用户点击结果列表查看目标资料。
2. **java.lang.RuntimeException: org.apache.nutch.plugin.PluginRuntimeException: java.lang.ClassNotFoundException: org.apache.nutch.net.RegexURLFilter** 这个问题可能是因为插件目录设置不正确。在 `...
使用Nutch和Tika爬行和重复数据删除重复数据集 #Politeness配置:为了处理礼貌,已将属性添加到文件nutch-site.xml中。 我们将坚果机器人(http.agent.name)标记为CS572 RASNA,代理说明(http.agent.description)...
### Nutch 的安装方法详解 #### 一、前言 Nutch是一款开源的网络爬虫项目,基于Hadoop实现,可以抓取整个互联网,并且能够根据网页内容进行索引和检索。本文将详细介绍如何在Windows环境下安装配置Nutch,使初学者...
《Lucene+Nutch:搜索引擎开发深度解析》一书的源码及详细说明是搜索引擎开发者和爱好者的重要参考资料。这本书深入探讨了如何使用Apache Lucene和Nutch构建一个完整的搜索引擎系统,涵盖了从网页抓取到索引建立,再...
#### 步骤6:运行Nutch爬虫 最后,你可以在Eclipse中运行Nutch的爬虫任务了。选择“Run As > Java Application”,并在“Arguments”选项卡中设置程序参数,如`Program arguments: urls-dir crawl-depth 3 topN 50`...