在利用Nutch自身的ant打包后,如果对整个项目不太清楚结构,往往出现很多奇怪的问题。这里就是遇到了。。。
*打job后,留在该项目中进行测试时,出现:
org.apache.nutch.plugin.PluginRuntimeException: java.lang.ClassNotFoundException: org.apache.nutch.net.urlnormalizer.basic.BasicURLNormalizer
此情况一般是在nutch-site.xml中plugin.folders还是保留在IDE的配置,比如写成绝对路径。
由于bin/nutch配置是conf下的配置优先于job里的(nutch文件是将conf先添加到classpath的,所以优先),所以job中的没有起到作用。
cause?
*异常:
java.lang.NullPointerException
at org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerField.java:126)
同样也是由plugin.folders配置不当引起的。
由于默认情况下,nutch下的plugin没有分词插件(当然plugin.includes也不会出现该插件名称),所以如果你后来在includes下添加了analysis-zh时(folder还是默认的plugins),当进行中文搜索/索引时就会出现这个异常。开始觉得很奇怪,因为原本在IDE是正常的,但在外面跑的时候就有问题,找了很久,教训很深刻。
从nutch文件分析知道,它会把build/plugins添加到classpath中,再结合PluginManifestParser#getPloginFolder(),如果此目录在classpath中并且它是一个相对目录时,会直接返回它;另外在打job包时,并不会将编译的新plugins目录覆盖原plugins,所以如果使用默认的值便出现此异常。
后来我将它设置为build/plugins便可以正常动作。
当然了,如果在产品环境下,并不存在build目录,同时如果删除plugins目录的话就可以利用job中的了,运行就没问题。
总之,分析问题时应该从流程上着手,找代码查原因。
分享到:
相关推荐
### Nutch 使用指南 #### 一、概述 Nutch 是一个开源项目,旨在帮助用户构建自己的内部网...需要注意的是,在实际部署过程中可能还会遇到各种问题,如性能调优、故障排查等,这些都需要根据具体情况进行调整和优化。
- 需要注意的是,插件的类应该遵循Nutch的命名规范,确保与其他模块兼容。 **3. 创建插件目录** - 在`nutch/plugin`目录下创建一个名为`index-self`的新目录,用于存放即将创建的插件文件。 - 该目录将包含`build....
在这个过程中,Google发布的GFS(Google File System)和MapReduce引起了Cutting的注意。这两项技术为大规模数据处理提供了强大的平台,激发了Cutting创建Hadoop的灵感。 Hadoop是基于GFS和MapReduce概念的开源实现...
- 针对音乐文件的抓取,需要注意版权问题。 - 可以通过API或网页爬虫的方式获取。 - **3.1.4 RSS抓取** - RSS(Really Simple Syndication)是一种用于共享网站内容的技术。 - 通过RSS订阅源可以方便地获取最新...
- 注意:GNU 的 GCJ 不支持 Solr。 2. **Solr 发布版**: - 需要下载 Solr 的发布版本。 #### 三、开始使用(Getting Started) 1. **运行环境**: - 浏览器和 Solr 服务器需在同一台机器上运行,以确保教程中...