Nutch编译及集成eclipse+mysql开发环境的部署总结
Nutch是一個應用程序,以Lucene為基礎實現的搜索引擎應用,Lucene為Nutch 提供了文本搜索和索引的API,Nutch不僅提供搜索,而且還有數據抓取的功能。
1)linux下nutch集成mysql編譯
預先部署ubuntu+jdk+tomcat+mysql,配置mysql的配置文件my.ini為:
[mysqld]下添加skip-grant-tables和character-set-server=utf8
[mysql]、[client]下添加default-character-set=utf8
根據nutch的conf文件gora-sql-mapping創建數據庫和數據表。也可通過自動方式生成數據庫和表:配置gora-sql-mapping、gora.properties及其它文件后,首次運行bin/nutch inject urls即可自動生成數據庫和表。
重啟mysql服務。
第一步:下載解壓
官網http://nutch.apache.org/下載apache-nutch-2.2-src.tar.gz版本。
#tar –xzvfapache-nutch-2.2-src.tar.gz
#cp-Rapache-nutch-2.2 /usr/nutch
#cd/usr/nutch
第二步:配置nutch對mysql的支持
#vi ivy/ivy.xml?? //啟用mysql數據庫
取消下面兩行注釋:
<dependencyorg="mysql" name="mysql-connector-java"rev="5.1.18" conf="*->default"/>
<dependencyorg="org.apache.gora" name="gora-sql"rev="0.1.1-incubating" conf="*->default" />
修改下行的rev值:原rev="0.3" 改成 rev="0.2.1"
<dependencyorg="org.apache.gora" name="gora-core" rev="0.3"conf="*->default" />
#viconf/gora.properties?? //設置mysql連接
注釋掉默認的數據庫連接配置,同時添加以下內容:
###############################
# MySQLproperties??????????
?################################
gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver
gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true
gora.sqlstore.jdbc.user=root
gora.sqlstore.jdbc.password=123
#viconf/nutch-site.xml? //修改配置文件
configuration節點增加如下內容:
<property>
<name>http.agent.name</name>
<value>Nutch</value>
</property>
<property>
<name>http.accept.language</name>
<value>ja-jp,en-us,en-gb,en;q=0.7,*;q=0.3</value>
<description>Valueof the “Accept-Language” request header field.
This allowsselecting non-English language as default one to retrieve.
It is auseful setting for search engines build for certain national group.
</description>
</property>
<property>
<name>parser.character.encoding.default</name>
<value>utf-8</value>
<description>Thecharacter encoding to fall back to when no other information
isavailable</description>
</property>
<property>
<name>storage.data.store.class</name>
<value>org.apache.gora.sql.store.SqlStore</value>
<description>TheGora DataStore class for storing and retrieving data.
Currentlythe following stores are available: ….
</description>
</property>
<property>
<name>generate.batch.id</name>
<value>*</value>
</property>
第三步:nutch根目錄下編譯
#apt-getinstall ant??? //安裝ant
#ant? runtime //ant編譯,持續時間很長
編譯后新增runtime目錄。
第四步:網頁抓取
進入runtime/local目錄,使用Crawl命令抓取網頁。
#mkdir -purls
#echo'http://www.oschina.net/' >urls/seed.txt
#bin/nutchcrawl urls -depth 3 -topN 5
執行完到mysql中查看結果。
mysql>select baseUrl from webpage;//默認數據庫是nutch
+---------------------+
|baseUrl???????????? |
+---------------------+
|http://www.163.com/ |
| NULL??????????????? |
+---------------------+
2 rows inset (0.00 sec)
2)eclipse集成nutch
Windows環境下配置elicpse集成nutch開發。
用ant命令將項目轉換成eclipse項目,參考:
http://wiki.apache.org/nutch/RunNutchInEclipse
為避免編譯,直接下載有bin包的nutch版本,apache-nutch-1.6-src.zip和apache-nutch-1.6-bin.zip兩個包。
第一步:建立工程
新建Java Project工程,命名為nutch。
復制?nutch-1.6-src 包下 java 包里的org整個包放在 項目的src包下。
復制?nutch-1.6-bin包里的conf 文件夾至項目的src包下。在conf 目錄右鍵,BuildPath ->Use as Source Folder。
復制nutch-1.6-bin 包里的 lib包下的所有jar包至項目目錄下。將lib下的jar包手動在Bulid Path里引入,Libraries->Add JARS內添加。
復制?nutch-1.6-bin 包下的 plugins 文件夾整個放在項目的 src 包下。
第二步:工程執行
conf/nutch-site.xml配置
<property>
<name>http.agent.name</name>
<value>Nutch-demo</value>
</property>
<property>
<name>plugin.folders</name>
<value>./src/plugins</value>
</property>
工程下新建urls目錄,下新建seed.txt,輸入幾個網址。
在src包下找到Crawl.java 文件
Runas ->Run Configuration ->Arguments
Programarguments輸入:crawlurls -dir out -threads 20 -depth 2
VMarguments輸入:-Xms32m -Xmx800m(注:這是設置內存大小,如果不設置會導致內存溢出異常)
上網下載Hadoop-core-1.2.1,用來替換Nutch1.7在windows下執行因權限報錯的問題,替換掉原來的Hadoop-core-1.03.jar。
下載地址:http://download.csdn.net/detail/leave00608/7060765
配置執行Run。執行后,看到工程目錄下out文件夾,Hadoop存儲。為了開發方便需要集成mysql,部署高版本的nutch。
3)eclipse集成nutch和mysql開發
下載apache-nutch-2.2-src.zip包,linux下ant編譯后apache-nutch-2.2-bin文件夾(集成mysql)。
第一步:新建工程nutch
復制?nutch-2.2-bin下src/ java 目錄下org到項目src包下。
復制?nutch-2.2-bin下conf到項目src包下,并conf 目錄右鍵,BuildPath ->Use as Source Folder。
復制nutch-2.2-bin下runtime/local目錄lib到項目目錄下,將所有jar包手動在BulidPath里引入,Libraries->Add JARS內添加。
復制?nutch-2.2-bi下的 runtime/local目錄plugins 到項目src包下,并BuildPath ->Use as Source Folder。
第二步:執行工程
啟動myql并檢查conf/gora.properties文件夾內mysql配置的信息。
conf/nutch-site.xml新增
<property>
<name>plugin.folders</name>
<value>./src/plugins</value>
</property>
工程下新建urls目錄并在其目錄下新建urls.txt,輸入幾個網址。
Hadoop權限問題:Hadoop-core-1.2.1替換nutch2.2中的Hadoop-core-1.1.1包。
在src包下找到Crawl.java 文件
Runas ->Run Configuration ->Arguments
Programarguments輸入:crawlurls -dir out -threads 20 -depth 2
VMarguments輸入:-Xms32m -Xmx800m
執行后查看mysql
mysql>select baseUrl from webpage;//默認數據庫是nutch
下面就是具體在eclipse中應用nutch開發,并存儲在mysql中。總結
以上是生活随笔為你收集整理的Nutch编译及集成eclipse+mysql开发环境的部署总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos6.2关于tomcat远程不
- 下一篇: (转载)Nutch2 WebPage 字