1、環境準備
1.1 軟件
操作系統:Windows 10專業版
ANT版本:apache-ant-1.9.7-bin.zip
JDK版本:jdk-8u65-windows-x64.exe
Solr版本:solr-4.9.1.zip
Nutch版本:apache-nutch-1.6-bin.tar.gz
Tomcat版本:apache-tomcat-9.0.0.M8-windows-x64.zip
Eclipse版本:eclipse-jee-mars-1-win32-x86_64.zip
下面是安裝的Eclipse插件:
IvyDE插件:
Ivy:
plugins:
org.apache.ivy.eclipse.ant_2.4.0.final_20141213170938.jar
org.apache.ivy_2.4.0.final_20141213170938.jar
features:
org.apache.ivy.feature_2.4.0.final_20141213170938.jar
IvyDE:
plugins:org.apache.ivyde.eclipse_2.2.0.final-201311091524-RELEASE.jar
features:org.apache.ivyde.feature_2.2.0.final-201311091524-RELEASE.jar
1.2 JDK安裝配置
雙擊”jdk-8u65-windows-x64.exe”即可進行安裝,我們一路點擊Next,默認安裝在C盤,下面是我們安裝完JDK的目錄。
下面配置JAVA環境變量:右擊->我的電腦->屬性->高級系統設置->高級->環境變量。
1.2.1 點擊”新建”,然後變量名寫上”JAVA_HOME”,填上上面內容。
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_65
如下:
備註:JAVA_HOME的變量值後千萬不能加分號。
1.2.2 第二步:點擊”新建”,然後變量名寫上”CLASSPATH”,填上上面內容。
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib
如下:
備註:要加圓點.表示當前路徑。
1.2.3 第三步:點擊”新建”,然後變量名寫上”NUTCH_JAVA_HOME”,填上上面內容。
NUTCH_JAVA_HOME=%JAVA_HOME%
1.2.4 第四步:在系統變量裏找到Path,點擊編輯。在後面追加上面內容。
PATH=……;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
如下:
備註:追加時,用”;”與前面的值進行分割。
1.3 ANT安裝配置
把”apache-ant-1.9.7-bin.zip”解壓到”C:\NutchWorkPlat”中,並重新命名爲”ant”。
下面配置ANT環境變量:右擊->我的電腦->屬性->高級系統設置->高級->環境變量。
1.3.1 第一步:點擊”新建”,然後變量名寫上”ANT_HOME”,填上下面內容。
ANT_HOME= C:\NutchWorkPlat\ant
如下:
備註:ANT_HOME的變量值後千萬不能加分號。
1.3.2 第二步:在系統變量裏找到Path,點擊編輯。在後面追加下面內容。
PATH=……;%ANT_HOME%\bin;%ANT_HOME%\lib
如下:
備註:追加時,用”;”與前面的值進行分割。
1.4 IvyDE安裝配置
1.4.1 ivyde- plugins
把"org.apache.ivyde.eclipse_2.2.0.final-201311091524-RELEASE.jar"複製到Eclipse安裝目錄的"plugins"中。
1.4.2 ivyde-features
把"org.apache.ivyde.feature_2.2.0.final-201311091524-RELEASE.jar"解壓到Eclipse安裝目錄的"features"中。
備註:是解壓之後放到目錄"features"中,而不是直接把jar包放到裏面,不然啓動Eclipse後,打開WindowàShow ViewàError log後,提示"Unable to find feature.xml in directory"。
1.4.3 ivy- plugins
把”org.apache.ivy.eclipse.ant_2.4.0.final_20141213170938.jar”和”org.apache.ivy_2.4.0.final_20141213170938.jar”複製到Eclipse安裝目錄的”plugins”中。
1.4.4 ivy-features
把”org.apache.ivy.feature_2.4.0.final_20141213170938.jar”解壓到Eclipse安裝目錄的”features”中。
完成以上步驟之後,重啓Eclipse,打開Windowàpreference對話框裏看到ivy一欄;打開Help->About Eclipse->Installation->Plug-ins列表裏也可以看到兩個ivy,一個ivyDe。
1.5 Tomcat安裝配置
1.5.1 首先安裝Tomcat
把”apache-tomcat-9.0.0.M8-windows-x64.zip”解壓到”C:\NutchWorkPlat”目錄下,並重新命名爲”tomcat”。
進入”C:\NutchWorkPlat\tomcat\bin”點擊”startup.bat”,然後出現如下界面。
然後在瀏覽器輸入”http://localhost:8080/“,出現如下界面,表示安裝成功。
1.5.2 接着安裝Tomcat的Eclipse插件,並讓Eclipse與Tomcat結合
正Eclipse->Help->Install New Software裏面,選擇Add,分別填上如下內容:
Name:Tomcat
Location:http://tomcatplugin.sf.net/update
如下:
選擇OK,勾選Tomcat Plugin後選擇Next進行安裝:
安裝完成之後重啓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操作。
在上圖所示的對話框中,直接點擊”下一步”,界面出現三種安裝模式:
Install from Internet,這種模式直接從Internet安裝,適合網速較快的情況;
Download Without Installing,這種模式只從網上下載Cygwin的組件包,但不安裝;
Install from Local Directory,這種模式與上面第二種模式對應,當你的Cygwin組件包已經下載到本地,則可以使用此模式從本地安裝Cygwin。
我們這裏選擇第一種”Install from Internet”方式進行安裝,然後一直使用默認值,選擇”下一步”,直到出現如下圖所示對話框:
進入”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 安裝包下載過程。
當安裝完Cygwin軟件之後,我們還需要對其設置它的環境變量。
1.5.1 第一步:點擊”新建”,然後變量名寫上”CYGWIN_HOME”,填上下面內容。
CYGWIN_HOME= C:\cygwin64
如下:
1.5.2 第二步:在系統變量裏找到Path,點擊編輯。在後面追加下面內容。
PATH=……;% CYGWIN_HOME %\bin
如下:
2、Eclipse開發
2.1 Solr部署
2.1.1 第一步:把”solr-4.9.1.zip”解壓到”C:\NutchWorkPlat”目錄下,並命名爲”solr”。
2.1.2 第二步:把”C:\NutchWorkPlat\solr\dist”目錄下的”apache-solr-4.9.1.war”重命名爲”solr.war”,並把它放到”C:\NutchWorkPlat\tomcat\webapps”目錄下面。
2.1.3 第三步:修改Tomcat配置文件”C:\NutchWorkPlat\tomcat\conf\server.xml”,添加中文編碼支持。
2.1.4 第四步:把”C:\NutchWorkPlat\solr\example”目錄下的”solr”文件夾連同裏面的內容一起復制到”C:\NutchWorkPlat\tomcat”目錄中。
2.1.5 第五步:在”C:\NutchWorkPlat\tomcat\conf\Catalina\localhost”下創建一個”solr.xml”文件,內容如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="C:\NutchWorkPlat\tomcat\webapps\solr.war" debug="0"
crossContext="true" >
<Environment name="solr/home" type="java.lang.String"
value="C:\NutchWorkPlat\tomcat\solr" override="true" />
</Context>
2.1.6 第六步:修改”C:\NutchWorkPlat\tomcat\solr\conf\ solrconfig.xml”找到下面這句話。
<queryResponseWriter
name="velocity"
class="solr.VelocityResponseWriter" enable="${solr.velocity.enabled:true}"/>
把 enable=”${solr.velocity.enabled:true}中的true修改爲false。
2.1.7 第七步:重新啓動Tomcat,輸入”http://localhost:8080/solr/“,出現下面界面。
2.2 Nutch導入
2.2.1 第一步:把”apache-nutch-1.6-bin.tar.gz”解壓到”C:\NutchWorkPlat”目錄下,並重命名爲”nutch”。
2.2.2 第二步:在eclipse中新建立一個Java Project,名字自己定義爲Nutch1.6,去掉默認路徑(Use default location)前面的對勾,選擇”C:\NutchWorkPlat\nutch”。其他保持默認,點擊”next”。
2.2.3 第三步:選擇”Librariesà Add Class Folder…”,從列表中選擇”conf”,將conf加入到classpath中。
2.2.4 第四步:彆着急點”next”,選擇”Order and Export”,選中”conf”,點擊”Top”,使其置頂,此步驟非常關鍵,置頂之後,點擊”Finish”。
2.2.5 第五步:在”Nutch1.6”工程根目錄下面創建”urls”文件夾(與src、conf同級),在裏面在創建一個名爲”urls.txt”的文件,在該文件裏添加如下內容:
2.2.6 第六步:在”Nutch1.6”工程根目錄下的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”。
2.2.7 第七步:在”Nutch1.6”工程根目錄下的conf文件夾中,編輯”regex-urlfilter.txt”,在”# accept anything else”下面輸入:”+^http://(.)“,然後保存。
2.2.8 第八步:經過上面的配置之後,就可以爬去網頁了,選中”Nutch1.6”工程右擊選擇”Run As->Run Configurations”,從中找到”Java Application”,然後右擊選擇”New”,在Main Class選擇”org.apache.nutch.crawl.Crawl”,將名字命名爲”Crawl”。
2.2.9 第九步:接着上面在”Arguments”選項卡中按下面進行填寫,然後點擊”Apply與Run”。
Program Arguments:urls -dir data -depth 3 -threads 5 -topN 100
VM arguments:-Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log
2.3 Solr與Nutch結合
通過上面的步驟之後,指定的網頁已經抓取到本地了,現在我們就爲我們下載的網頁建立索引。
2.3.1 第一步:把”E:\NutchWorkPlat\nutch\conf”下面的”schema.xml”複製到Tomcat的安裝目錄”E:\NutchWorkPlat\tomcat\solr\conf”下,覆蓋掉原文件。schema.xml設置了索引的字段,把content項後面的stored=”false” 改爲 stored=”true” 後在搜索返回值中就會包含含有關鍵字的具體內容。
2.3.2 第二步:點擊Eclipse工具欄的”Start Tomcat”即可啓動Tomcat。
備註:如果Tomcat已經起來了,在第一步完成之後,也應該重啓使其有效,如果不起動Tomcat,在建立索引時會失敗。
2.3.3 第三步:經過上面的配置之後,就可以建立索引了,選中”Nutch1.6”工程右擊選擇”Run AsàRun Configurations”,從中找到”Java Application”,然後右擊選擇”New”,在Main Class選擇”org.apache.nutch.indexer.solr.SolrIndexer”,將其命名爲”SolrIndexer”。
2.3.4 第四步:接着上面在”Arguments”選項卡中按下面進行填寫,然後點擊”Apply與Run”。
Program Arguments:
http://localhost:8080/solr/ data/crawldb -linkdb data/linkdb data/segments/*
VM arguments:-Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log
下面是Eclipse控制檯輸出信息:
SolrIndexer: starting at 2016-06-18 14:45:41
Adding 352 documents
SolrIndexer: finished at 2016-06-18 14:45:56, elapsed: 00:00:14
2.5.5 第五步:在瀏覽器輸入”http://localhost:8080/solr/admin/“,並在查詢條件輸入關鍵字,點擊”Search”進行查詢。
下面就是查詢結果,以XML結果顯示。
到目前爲止,Nutch二次開發的前期工作已經準備完畢,並在上面進行簡單的抓取,後面我們將對Nutch的源碼以及工作原理相結合進行分析。進一步認識Nutch。