Nutch开发最好在linux环境下进行,省心,可以避免hadoop在windows平台上的一些问题,这里我用的是ubuntu 13.04 32位桌面版,用的是vmware 镜像,方便,不用安装,下载后直接可以用vmware打开
镜像下载地址:http://www.traffictool.net/vmware/
在开始之前更新一下源(/etc/apt/sources.list),网上资料很多,参考地址 :
http://wiki.ubuntu.org.cn/%E6%BA%90%E5%88%97%E8%A1%A8
修改过源之后更新
sudo apt-get update && sudo apt-get upgrade
以上是系统的准备,如果你自己已经有了linux的测试环境也不需要像我这样重新搭建linux环境了,关于nutch的配置和开发调试见下文
lsb_release -a 该命令适用于所有linux版本 uname -m 该命令查看linux是32位还是64位
查看linux的版本是为了根据系统选择下载对应的软件如jdk
上相关官网寻找对应linux版本的jdk(这里选择的是32位jdk)和ant,下载解压后配置环境变量
安装vim :
apt-get install vim
vim /etc/bash.bashrc(安装在/etc/bash.bashrc下面可以对所有用户有效)
配置好后重新打开一个terminal 命令交互窗口,执行java -version ,ant -version 看是否正确安装
这里我用的是Spring的STS作为java开发的IDE,其实和Eclipse差不多,基本上是一样用的
STS 官网 : http://spring.io/tools/sts/all
找到对应版本下载
为了nutch开发需要,需要安装Subclipse SVN和IvyDE两个插件,你也可以不用安装svn插件,可以再系统中安装svn ,Ubuntu下安装svn命令如下
sudo apt-get install subversion
在系统中安装SVN的话可以通过命令
svn co https://svn.apache.org/repos/asf/nutch/tags/release-2.2.1/
检出项目代码,然后通过STS import导入项目来进行开发,这里我用的是通过STS的svn插件来检出代码
STS菜单栏 Help->Install New Software
点击Add按钮输入插件的名称,两个插件的地址分别为
subclipse update site:http://subclipse.tigris.org/update_1.8.x
IvyDe update site : http://www.apache.org/dist/ant/ivyde/updatesite
选中所需安装的插件,一路Next和Finish,成功之后重启STS
File -> Import -> Checkout Projects from SVN
Next -->>
Next -->>
nutch 的svn地址为https://svn.apache.org/repos/asf/nutch/,这里我checkout的版本为2.2.1
Next -->>
取项目名叫nutch-2.2.1-mysql,后面我们会再配一个nutch和hbase结合的例子,项目的名字就叫nutch-2.2.1-hbase
checkout 完成之后项目的结构如下 :
我们选中项目右键发现build path居然不可用
这时我们需要到项目目录下执行ant eclipse (为什么执行ant eclipse命令呢,这是因为在项目的build.xml中配置了一个名叫eclipse的ant 任务,你打开该文件大概观察一下就大概能够猜到它的目的就是拷贝项目依赖的jar文件,插件等到nutch的项目系统上下文中,其实我不怎么了解ant,这里是猜的,呵呵)使改项目变成eclipse能认识的项目,该命令第一次执行还会下载项目所依赖的jar文件(相关文件为ivy/ivy.xml),nutch现在提供了ant+Ivy和Maven两种方式来进行项目管理和依赖(感觉有点乱),我们现在用的是ant + Ivy的方式来进行项目依赖包的管理的
第一次编译下载需要较长时间,如果发现一直卡在 ivy:resolve .....这里,或者最后发现出错了,原因很有可能是 http://repo1.maven.org被墙,参考http://blog.csdn.net/majian_1987/article/details/17004531
我在公司编译是没有出现问题的,就是第一次的时间有点长
这时我们回到STS里面刷新一下项目,发现项目结构已经变成下面这样了
右键项目发现Build Path也可以用了,接下来我们要做的就是配置nutch让它能够和mysql成功运行,见下一篇