【问题标题】:after fresh installation of nutch and solr crawl error全新安装 nutch 和 solr 爬网错误后
【发布时间】:2023-01-06 22:13:14
【问题描述】:

全新安装 nutch 1.19 和 solr 8.11.2 后出现问题。运行爬网过程后,爬网结束并出现 NullPointerException 和以下错误消息:

运行错误: /opt/solr/apache-nutch-1.19/bin/nutch fetch -Dsolr.server.url=http//localhost:8983/solr/nutch -Dmapreduce.job.reduces=2 -Dmapreduce.reduce.speculative=false -Dmapreduce .map.speculative=false -Dmapreduce.map.output.compress=true -D fetcher.timelimit.mins=180 crawl/segments/20230106121647 -threads 50 失败,退出值 255。

有谁知道是什么导致了这个错误?

【问题讨论】:

  • 如果没有 NullPointerException 的堆栈跟踪或爬虫日志(stdout 或 hadoop.log)中的某些上下文,很难说出导致错误的原因。
  • 以下是 hadoop.log 中的最新日志条目:
  • java.lang.Exception:java.lang.OutOfMemoryError:无法创建本机线程:可能在 org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:492) 处达到内存不足或进程/资源限制 ~ [hadoop-mapreduce-client-common-3.3.4.jar:?] 在 org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:552) ~[hadoop-mapreduce-client-common-3.3。 4.jar:?] Caused by: java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached ...

标签: solr nutch


【解决方案1】:

错误消息表明内存(Java 堆)不足以启动 50 个提取程序线程。您可以尝试以下操作:

  1. 如果您不需要默认数量的 50 个提取线程,请通过将选项 --num-threads n_threads 传递给 bin/crawl 来减少它
  2. Java 堆大小可以通过环境变量 NUTCH_HEAPSIZE 设置 - 默认值为 4 MB,即使有 50 个线程也应该足够,除非您有非常大的文档(例如 PDF 文件)要解析和索引。
  3. 您的系统可能存在限制,需要使用较少的内存或线程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    相关资源
    最近更新 更多