多数资料介绍的NutchWindows下的安装和使用都是使用cygwin,如搜索排名很靠前的这篇NutchWindows中安装之细解,实际上有些文不对题,主要讲了cygwin的安装。这篇Nutch 0.8笔记--Google式的搜索引擎实也是,我想nutch是基于纯java的,应该和操作系统平台无关,windows下安装cygwin实际上是构建了一个linux运行环境层,不是一个好的解决办法。后来又搜索到了下面的方法--cygwin运行nutch

下载了Nutch 1.0 windows 2003下安装测试,出现java异常,仔细分析,都是些IO异常,主要是调用Unix命令错误,如“bash”“chmod”错误,判断这些错误原因是没有安装cygwin

经过查找资料,原来Nutch使用了Apache的另外一个开源项目Hadoop做底层分布式计算处理,而Hadoop主要是在linux上研制和部署的,没有考虑在windows上部署的问题,而且Hadoop和操作系统及文件系统关系密切,java源码里有很多调用linuxshell命令的地方,经过查看源码,其中就包括“bash”“chmod”“df”shell命令。

下面的链接是高手解决Hadoop调用DF命令的问题,使Hadoop可以在Windows上部署的方法:

https://issues.apache.org/jira/browse/HADOOP-33?%20page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

但看来应该只适用于低版本的Hadoop,高版本的Hadoop涉及到的shell命令更多,要想在windows部署,需要修改的源码太多,而且要想修改Hadoop的源码,开发环境也需要安装cygwin,据说是ANT要用到sed命令,否则无法完成构建。就源码看,Nutch本身并不涉及linux环境问题。但好像还没有Nutch脱离Hadoop运行的办法,而且HadoopNutch的核心模块,如果脱离了HadoopNutch可能也不称其为Nutch了。

我试着修改了一下源码,主要涉及的代码在JobClient.javaUnixUserGroupInformation.javaShell.java中,最终还是放弃了。

这个问题看来目前是无解了。

 

posted on 2010-05-07 11:43  Routop  阅读(714)  评论(0编辑  收藏  举报