无需MapReduce/Hadoop运行Apache Nutch可行吗?如何配置及解决报错
Apache Nutch无需MapReduce/Hadoop集群爬取的可行性及报错解决
可行性说明
Apache Nutch 1.x系列版本的核心运行依赖Hadoop的存储与计算能力,无法完全脱离Hadoop环境运行。但无需搭建分布式MapReduce集群,只需配置Hadoop的单机(本地)模式,就能在单台机器上完成网站爬取,满足小规模爬取需求。
HADOOP_HOME未设置报错解决步骤
你执行注入命令时遇到的报错,是因为Nutch找不到Hadoop的安装路径,按以下步骤配置即可解决:
- 下载兼容的Hadoop版本:选择与Nutch 1.19兼容的Hadoop版本(推荐Hadoop 2.9.x或3.x),解压到本地目录(比如
C:\hadoop)。 - 配置系统环境变量:
- 添加系统环境变量
HADOOP_HOME,值为Hadoop的解压路径(如C:\hadoop)。 - 将
%HADOOP_HOME%\bin添加到系统Path变量中。
- 添加系统环境变量
- 补充Windows依赖文件:原生Hadoop在Windows上缺少必要的执行文件,需下载对应版本的winutils工具包,将包内的
winutils.exe和hadoop.dll复制到HADOOP_HOME\bin目录下。 - 验证Hadoop环境:打开Cygwin或命令行窗口,执行
hadoop version,能正常输出版本信息即说明配置成功。 - 重新执行注入命令:再次运行
bin/nutch inject /cygdrive/c/cygwin64/nutch/apache-nutch-1.19/crawldb/ /cygdrive/c/cygwin64/nutch/apache-nutch-1.19/urls/,即可完成URL注入。
内容的提问来源于stack exchange,提问作者Godson Matemu
相关产品推荐
相关产品推荐

