1、環境准備
1.1 本期引言
前三期分別介紹了Nutch與Solr在Linux上面的安裝,並做了簡單的應用,這一期從開發的角度進行,因為我們日常最熟悉的開發環境是Windows,所以本期詳細介紹Windows平台的Nutch二次開發所需要進行的配置安裝。當我們開發好之后,最后在部署到Linux環境中。
為了方便以后Nutch開發以及軟件安裝的管理,我們對開發環境配置進行如下安排:
E:/(盤符)
|----cygwin
|----NutchWorkPlat
|----ant
|----solr
|----nutch
|----eclipse
|----tomcat
|----workspace
1.2 環境介紹
本次Nutch二次開發的環境介紹:
-
操作系統:Windows 7 旗艦版
-
ANT版本:apache-ant- 1.8.3-bin.tar.gz
-
JDK版本:jdk- 6u31-windows-i586.exe
-
Solr版本:apache-solr- 3.5.0.zip
-
Nutch版本:apache-nutch- 1.4-bin.tar.gz
-
Tomcat版本:apache-tomcat- 7.0.27.tar.gz
-
Eclipse版本:eclipse-jee- indigo- SR1-win32.zip
下面是安裝的Eclipse插件:
-
IvyDE插件:
-
Ivy:
-
plugins:
-
-
-
org.apache. ivy_ 2.2.0.final_20100923230623.jar
-
org.apache. ivy.eclipse.ant_ 2.2.0.final_20100923230623.jar
-
features:org.apache. ivy.feature_ 2.2.0.final_20100923230623.jar
-
IvyDE:
-
plugins:org.apache. ivyde.eclipse_ 2.2.0.beta1-201203282058-RELEASE.jar
-
features:org.apache. ivyde.feature_ 2.2.0.beta1-201203282058-RELEASE.jar
-
-
Tomcat插件:tomcatPluginV 33.zip
1.3 JDK安裝配置
雙擊"jdk-6u31-windows-i586.exe"即可進行安裝,我們一路點擊Next,默認安裝在C盤,下面是我們安裝完JDK的目錄。
下面配置JAVA環境變量:右擊à我的電腦à屬性à高級系統設置à高級à環境變量。
【新建】
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_31
CLASSPATH=.;% JAVA_HOME %\lib;% JAVA_HOME%\jre\lib
NUTCH_JAVA_HOME=% JAVA_HOME %
【增加】
PATH=……;% JAVA_HOME%\bin; % JAVA_HOME%\jre\bin
第一步:點擊"新建",然后變量名寫上"JAVA_HOME",填上上面內容。
備注:JAVA_HOME的變量值后千萬不能加分號。
第二步:點擊"新建",然后變量名寫上"JAVA_HOME",填上上面內容。
備注:要加圓點.表示當前路徑。
第三步:點擊"新建",然后變量名寫上"NUTCH_JAVA_HOME",填上上面內容。
第四步:在系統變量里找到Path,點擊編輯。在后面追加上面內容。
備注:追加時,用";"與前面的值進行分割。
1.4 ANT安裝配置
把"apache-ant-1.8.3-bin.tar.gz"解壓到"E:\NutchWorkPlat"中,並重新命名為"ant"。
下面配置ANT環境變量:右擊à我的電腦à屬性à高級系統設置à高級à環境變量。
【新建】
ANT_HOME= E:\NutchWorkPlat\ant
【增加】
PATH=……;%ANT_HOME%\bin; %ANT_HOME%\lib
第一步:點擊"新建",然后變量名寫上"ANT_HOME",填上上面內容。
備注:ANT_HOME的變量值后千萬不能加分號。
第二步:在系統變量里找到Path,點擊編輯。在后面追加上面內容。
備注:追加時,用";"與前面的值進行分割。
1.5 IvyDE安裝配置
從官網上把上面所寫的IvyDE的Eclipse插件下載下來。
備注:其他網友和官網都只說安裝"ivyde-2.2.0.beta1"即可,但是發現安裝沒有起作用,按照"Eclipse安裝ivyDe插件"這篇文章成功了。
【ivyde-eclipse】
-
ivyde- plugins
把"org.apache.ivyde.eclipse_2.2.0.beta1-201203282058-RELEASE.jar"復制到Eclipse安裝目錄的"plugins"中。
-
ivyde- features
把"org.apache.ivyde.feature_2.2.0.beta1-201203282058-RELEASE.jar"解壓到Eclipse安裝目錄的"features"中。
備注:是解壓之后放到目錄"features"中,而不是直接把jar包放到里面,不然啟動Eclipse后,打開WindowàShow ViewàError log后,提示"Unable to find feature.xml in directory"。
【ivy-eclipse】
-
ivy- plugins
把"org.apache.ivy.eclipse.ant_2.2.0.final_20100923230623.jar"和"org.apache.ivy_2.2.0.
final_20100923230623.jar"復制到Eclipse安裝目錄的"plugins"中。
-
ivy- features
把"org.apache.ivy.feature_2.2.0.final_20100923230623.jar"解壓到Eclipse安裝目錄的"features"中。
完成以上步驟之后,重啟Eclipse,打開Windowàpreference對話框里看到ivy一欄;打開HelpàAbout EclipseàInstallationàPlug-ins列表里也可以看到兩個ivy,一個ivyDe。
1.5 Tomcat安裝配置
首先安裝Tomcat,把"apache-tomcat-7.0.27.tar.gz"解壓到"E:\NutchWorkPlat"目錄下,並重新命名為"tomcat"。
進入"E:\NutchWorkPlat\tomcat\bin"點擊"startup.bat",然后出現如下界面。
然后在瀏覽器輸入"http://localhost:8080/",出現如下界面,表示安裝成功。
接着安裝Tomcat的Eclipse插件,並讓Eclipse與Tomcat結合,把"tomcatPluginV33.zip"后的"com.sysdeo.eclipse.tomcat_3.3.0"復制到"E:\NutchWorkPlat\eclipse\plugins"中,然后重啟Eclipse。
打開Windowàpreference對話框里看到tomcat一覽,點擊tomcat,把剛才解壓的tomcat進行關聯,操作如下。
點擊工具欄的"Start Tomcat"即可啟動Tomcat。
然后在Eclipse控制台會輸出啟動Tomcat的相關信息。
此時可以再次在瀏覽器輸入"http://localhost:8080/"進行驗證是否啟動成功。
1.6 Cygwin安裝配置
nutch是在hadoop基礎上做的,由於hadoop只在linux上運行,里面涉及到大量的操作linux程序,所以我們在Windows部署的時候必須先安裝cygwin環境,模擬linux操作。
我們這次安裝cygwin是用安裝包進行安裝,並沒有采用Internet在線安裝。
在上圖所示的對話框中,直接點擊"下一步",進入如下圖所示的對話框:
界面出現三種安裝模式:
-
Install from Internet,這種模式直接從Internet安裝,適合網速較快的情況;
-
Download Without Installing,這種模式只從網上下載Cygwin的組件包,但不安裝;
-
Install from Local Directory,這種模式與上面第二種模式對應,當你的Cygwin組件包已經下載到本地,則可以使用此模式從本地安裝Cygwin。
我們這里選擇第三種"Install from Local Directory"方式進行安裝,然后點擊"下一步",進入如下圖所示對話框:
在上圖所示的對話框中,設置Cygwin 的安裝目錄,Install For 選擇"All Users",然后點擊"下一步",進入如下圖所示對話框:
選擇本地安裝包的路徑,然后點擊"下一步",進入如下圖所示對話框:
點擊"確定",進入如下圖所示對話框:
進入"Select Packages"對話框后,其實直接點擊"下一步",進行默認安裝即可,為了以后再cygwin下面搭建hadoop環境,所以安裝了一些軟件。
-
OpenSSL
-
sed
-
vim
必須保證"Net Category"下的"OpenSSL"被安裝,如下圖所示:
如果還打算在eclipse 上編譯Hadoop,則還必須安裝"Base Category"下的"sed",如
下圖所示:
另外,還建議將"Editors Category"下的vim 安裝,以方便在Cygwin 上直接修改配置文件,如下圖所示:
建議安裝在"Devel Category"下的subversion,如下圖所示:
當完成上述操作后,點擊"Select Packages"對話框中"下一步",進入Cygwin 安裝包
下載過程,如下圖所示:
當安裝完后,會自動進入到如下圖所示的對話框:
在上圖所示的對話框中,選中"Create icon on Desktop",以方便直接從桌面上啟動
Cygwin,然后點擊"完成"按鈕。至此,Cgywin 已經安裝完,安裝目錄下的內容如下圖所示:
當安裝完Cygwin軟件之后,我們還需要對其設置它的環境變量。
【新建】
CYGWIN_HOME= E:\cygwin
【增加】
PATH=……;% CYGWIN_HOME %\bin
第一步:點擊"新建",然后變量名寫上"CYGWIN_HOME",填上上面內容。
第二步:在系統變量里找到Path,點擊編輯。在后面追加上面內容。
2、Eclipse開發
2.1 Solr部署
第一步:把"apache-solr-3.5.0.zip"解壓到"E:\NutchWorkPlat"目錄下,並命名為"solr"。
第二步:把"E:\NutchWorkPlat\solr\dist"目錄下的"apache-solr-3.5.0.war"重命名為"solr.war",並把它放到"E:\NutchWorkPlat\tomcat\webapps"目錄下面。
第三步:修改Tomcat配置文件"E:\NutchWorkPlat\tomcat\conf\server.xml",添加中文編碼支持。
第四步:把"E:\NutchWorkPlat\solr\example"目錄下的"solr"文件夾連同里面的內容一起復制到"E:\NutchWorkPlat\tomcat"目錄中。
第五步:在"E:\NutchWorkPlat\tomcat\conf\Catalina\localhost"下創建一個"solr.xml"文件,內容如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="E:\NutchWorkPlat\tomcat\webapps\solr.war" debug="0"
crossContext="true" >
<Environment name="solr/home" type="java.lang.String"
value="E:\NutchWorkPlat\tomcat\solr" override="true" />
</Context>
第六步:修改"E:\NutchWorkPlat\tomcat\solr\conf\ solrconfig.xml"找到下面這句話。
<queryResponseWriter
name="velocity"
class="solr.VelocityResponseWriter" enable="${solr.velocity.enabled:true}"/>
把 enable="${solr.velocity.enabled:true}中的true修改為false。
第七步:重新啟動Tomcat,輸入"http://localhost:8080/solr/",出現下面界面。
2.2 Nutch導入
第一步:把"apache-nutch-1.4-bin.tar.gz"解壓到"E:\NutchWorkPlat"目錄下,並重命名為"nutch"。
第二步:在eclipse中新建立一個Java Project,名字自己定義為Nutch1.4_V0.1,去掉默認路徑(Use default location)前面的對勾,選擇"E:\NutchWorkPlat\nutch"。其他保持默認,點擊"next"。
第三步:選擇"Librariesà Add Class Folder...",從列表中選擇"conf",將conf加入到classpath中。
第四步:別着急點"next",選擇"Order and Export",選中"conf",點擊"Top",使其置頂,此步驟非常關鍵,置頂之后,點擊"Finish"。
第五步:在"Nutch1.4_V0.1"工程根目錄下面創建"urls"文件夾(與src、conf同級),在里面在創建一個名為"urls.txt"的文件,在該文件里添加如下內容:
http://www.hebut.edu.cn
http://www.qq.com/
第六步:在"Nutch1.4_V0.1"工程根目錄下的conf文件夾中,編輯"nutch-site.xml",使其內容如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>http.agent.name</name>
<value>My Nutch Spider</value>
</property>
<property>
<name>plugin.folders</name>
<value>./src/plugin</value>
</property>
</configuration>
備注:其中"http.agent.name"和"plugin.folders"必須設置,不然會出現"Job Failure"。
第七步:在"Nutch1.4_V0.1"工程根目錄下的conf文件夾中,編輯"regex-urlfilter.txt",在"# accept anything else"下面輸入:"+^http://(\.*)*",然后保存。
第八步:經過上面的配置之后,就可以爬去網頁了,選中"Nutch1.4_V0.1"工程右擊選擇"Run AsàRun Configurations",從中找到"Java Application",然后右擊選擇"New",在Main Class選擇"org.apache.nutch.crawl.Crawl",將名字命名為"Crawl"。
第八步:接着上面在"Arguments"選項卡中按下面進行填寫,然后點擊"Apply與Run"。
-
Program Arguments:urls -dir crawl -depth 5 -threads 5 -topN 100
-
VM arguments:-Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log
2.3 Solr與Nutch結合
通過上面的步驟之后,指定的網頁已經抓取到本地了,現在我們就為我們下載的網頁建立索引。
第一步:把"E:\NutchWorkPlat\nutch\conf"下面的"schema.xml"復制到Tomcat的安裝目錄"E:\NutchWorkPlat\tomcat\solr\conf"下,覆蓋掉原文件。schema.xml設置了索引的字段,把content項后面的stored="false" 改為 stored="true" 后在搜索返回值中就會包含含有關鍵字的具體內容。
第二步:點擊Eclipse工具欄的"Start Tomcat"即可啟動Tomcat。
備注:如果Tomcat已經起來了,在第一步完成之后,也應該重啟使其有效,如果不起動Tomcat,在建立索引時會失敗。
第三步:經過上面的配置之后,就可以建立索引了,選中"Nutch1.4_V0.1"工程右擊選擇"Run AsàRun Configurations",從中找到"Java Application",然后右擊選擇"New",在Main Class選擇"org.apache.nutch.indexer.solr.SolrIndexer",將其命名為"SolrIndexer"。
第四步:接着上面在"Arguments"選項卡中按下面進行填寫,然后點擊"Apply與Run"。
-
Program Arguments:
http://localhost:8080/solr/ crawl/crawldb -linkdb crawl/linkdb crawl/segments/*
-
VM arguments:-Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log
下面是Eclipse控制台輸出信息:
SolrIndexer: starting at 2012-04-18 14:45:41
Adding 352 documents
SolrIndexer: finished at 2012-04-18 14:45:56, elapsed: 00:00:14
第五步:在瀏覽器輸入"http://localhost:8080/solr/admin/",並在查詢條件輸入關鍵字,點擊"Search"進行查詢。
下面就是查詢結果,以XML結果顯示。
到目前為止,Nutch二次開發的前期工作已經准備完畢,並在上面進行簡單的抓取,后面我們將對Nutch的源碼以及工作原理相結合進行分析。進一步認識Nutch。