当前位置: 首页 > 知识库问答 >
问题:

将nutch 1.11与solr 6.0.1云集成

都阳辉
2023-03-14

这类似于这里的solr5.3.15-坚果,但有一些额外的皱纹。首先,作为背景,我尝试了solr 4.9.1和坚果,没有问题。然后移动到solr 6.0.1。集成作为独立系统运行良好,并且后端代码可以解析json等。但是,最终,我们需要安全性,并且不想使用 Kerberos。根据Solr安全文档,基本身份验证和基于规则的身份验证(这是我们想要的)仅在云模式下工作(顺便说一句,如果有人建议让非Kerberos安全性在独立模式下工作,那也可以)。因此,浏览了Solr-Cloud-Ref的文档,使用交互式启动并采用所有默认值,除了我作为“nndcweb”而不是“入门”的集合名称。我采取的配置是 data_driven_schema_configs 。为了整合坚果,我做了很多尝试的排列组合。根据我迄今为止能够找到的内容,我只给出最后2个似乎最接近的。从早期的堆栈溢出引用中,我尝试的最后一个是(请注意,所有url都 http://,但是Stackoverflow的发布系统抱怨,所以我为了这篇文章而把它们拿出来了):

solr.server.urllocalhost:8939/solr/nndcweb/Dsolr.server.type云solr.zookeeper.urllocalhost:9983/

我最终遇到了前面提到的线程中提到的相同问题:即,

线程“main”中的异常Java . lang . illegalargumentexception:Java . net . urisynctaxexception:索引15处的方案名称中的非法字符:Solr . server . URL = localhost:8939/Solr/nndc web at org . Apache . Hadoop . fs . path . initialize(path . Java:206)at org . Apache . Hadoop . fs . path .(path . Java:172)at org . Apache . nutch . indexer . indexing job . Java

我还尝试了:

bin/nutch solrindex localhost:8983/Solr/nndc web crawl/crawl db-link db crawl/link db-dsolr . server . type = cloud-D Solr . zookeeper . URL = localhost:9983/-dir crawl/segments/*-normalize

得到同样的东西。对solrindex进行帮助表示将-params与“

有没有人对下一步尝试有什么建议?谢谢!

更新我更新了上面使用的命令,以反映对我犯的一个愚蠢错误的纠正。注意,实际上所有的url引用都有http://前缀,但是我必须去掉它们才能发布。尽管进行了修复,但我仍然得到了相同的html" target="_blank">异常(我用一个示例替换了上面的原始示例,再次用http:// cut out..这确实让事情变得混乱...很抱歉...).

又一次更新..这很有意思。使用solrindex选项,我只是从zookeeper url中取出端口..仅本地主机(带http://前缀)。15个字符。URISyntaxException说问题在索引18处(来自org . Apache . Hadoop . fs . path . initialize(path . Java:206))。这恰好与“solr.zookeeper.url=”中的“=”匹配。因此,似乎Hadoop . fs . path . initialize()将整个字符串作为url。所以也许我没有设置正确?还是这是hadoop的bug?这很难让人相信。

一个几乎有更新好吧.鉴于上次尝试的结果,我决定将solr.类型的云和动物园管理员.url放在坚果网站.xml配置文件中。然后做了:

bin/nutch solrindex http://localhost:8983/Solr/nndc web crawl/crawl db-linkdb crawl/linkdb-dir crawl/segments-normalize

(太好了..现在StackOverflow对url没有任何抱怨)。不再有uri异常。现在,我得到的错误是:

(在顶部剪切措辞)

Indexing 250 documents
Indexer: java.io.IOException: Job failed!
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:836)
at org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:145)
at org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:222)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:231)

深入挖掘nutch日志,我看到以下内容:

未根据请求指定集合参数,并且尚未设置默认集合。

显然,这在Nutch邮件列表中已经提到过,与Nutch 1.11和solr 5(云模式)有关。在那里提到它不会起作用,但是将上传一个补丁(这是在2016年1月)。在坚果开发网站上四处挖掘,我没有在这个问题上遇到任何事情......对于坚果1.13来说有点类似,显然没有正式发布。仍然在挖掘,但如果有人真的以某种方式工作,我很想听听你是怎么做到的。

编辑2016年7月12日

所以,经过几周在另一个不相关的项目上转移注意力,我又回到了这个。在看到 S. Doe 在下面的回应之前,我决定尝试一下 ElasticSearch。因为这是一个全新的项目,我们还没有被束缚在任何事情上。目前为止,一切都好。Nutch使用它很好,尽管为了使用分布式二进制文件,我不得不将 Elasticsearch 版本支持到 1.4.1。尚未尝试安全方面。出于好奇,我最终会尝试S. Doe对solr的建议,并在以后发布如何进行......

共有2个答案

周飞
2023-03-14

关于使用solr索引时URL的问题:我也有同样的问题,我知道这听起来很愚蠢,但由于某些我无法理解的原因,您可以改为使用URL的Encode(将“:”替换为“:”,将“/”替换成“/”和…)来修复它。(至少对我来说,这解决了这个问题。)在你的情况下:

bin/nutch solrindex-D solr.server.url=http://localhost:8983/solr/nndcweb爬网/爬网数据库-linkdb爬网/链接数据库-dir爬网/段-正常化

我希望它有帮助。顺便说一句,现在我遇到了和你完全一样的问题(索引器:java.io.IOException:作业失败!)

江英华
2023-03-14

您没有指定连接到Solr的协议:您需要指定超文本传输协议://部分的solr.server.url并且您使用了错误的语法来指定要连接的端口,正确的URL应该是:http://localhost:8983/solr/nndcweb/

 类似资料:
  • 我实际上在做一个聊天应用程序,消息存储在Firestore中,我希望消息的接收者在发送者发送消息时得到通知。我知道实现这一点的唯一方法是通过Firebase云消息传递,但我不知道如何实现这一点。 我该怎么做? NB:我是新手。提前谢了。

  • 我在做一个无服务器架构的项目。 API网关不能提供适当的方法来处理这类问题。 所以我开始想我能做什么: AWS WAF显然是一个解决方案。 我在API网关前面放了一个云前端分发版。 我意识到这可能是一个变通的解决方案,但它是吗? 以下是我发现的问题: 有什么我误解了吗?

  • 问题内容: 我有一个主要使用Richfaces的JSF应用程序。我想介绍一个功能更丰富的网格控件,例如基于jQuery的jqgrid。是否可以从JSF支持bean获得JSON数据?如果没有,是否有替代方法? 问题答案: 这里可能有几个选择。 Bean方法可以返回一个字符串,它只是一个JSON字符串 您可以使用JsonLib将Java对象转换为Json。 使用其他Servlet服务网格请求 我将推荐

  • 问题内容: 我已经下载并安装了Spring工具套件。现在,当我尝试在IntelliJ中创建新项目时,它在库中没有显示Spring。如何在其中获取Spring? 提前致谢! 问题答案: 在SpringSource工具套件具有无关的IntelliJ IDEA ,实际上它是一个不同的IDE(这是一个专门的Eclipse分布)。 因此,尽管下载Spring 框架 确实有意义(尽管最好通过Maven之类的构

  • 我试图从jsf启动激活引擎 引擎总是以null返回,我读到activiti.cfg.xml文件应该在类路径中,我已经把文件放在web-inf/class下,但是引擎仍然返回null,这意味着激活不能初始化引擎,有什么想法吗?

  • 我想在PyCharm中运行ROS,但是找不到。应该在其中进行更改的桌面文件。此外,我想使用为< code>PyTorch创建的相同环境,不想更改解释器。有人能帮我一下吗? 问候。