Nutch编译及集成eclipse+mysql开发环境的部署总结
Nutch是一個(gè)應(yīng)用程序,以Lucene為基礎(chǔ)實(shí)現(xiàn)的搜索引擎應(yīng)用,Lucene為Nutch 提供了文本搜索和索引的API,Nutch不僅提供搜索,而且還有數(shù)據(jù)抓取的功能。
1)linux下nutch集成mysql編譯
預(yù)先部署ubuntu+jdk+tomcat+mysql,配置mysql的配置文件my.ini為:
[mysqld]下添加skip-grant-tables和character-set-server=utf8
[mysql]、[client]下添加default-character-set=utf8
根據(jù)nutch的conf文件gora-sql-mapping創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表。也可通過自動(dòng)方式生成數(shù)據(jù)庫和表:配置gora-sql-mapping、gora.properties及其它文件后,首次運(yùn)行bin/nutch inject urls即可自動(dòng)生成數(shù)據(jù)庫和表。
重啟mysql服務(wù)。
第一步:下載解壓
官網(wǎng)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數(shù)據(jù)庫
取消下面兩行注釋:
<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?? //設(shè)置mysql連接
注釋掉默認(rèn)的數(shù)據(jù)庫連接配置,同時(shí)添加以下內(nèi)容:
###############################
# 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節(jié)點(diǎn)增加如下內(nèi)容:
<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編譯,持續(xù)時(shí)間很長
編譯后新增runtime目錄。
第四步:網(wǎng)頁抓取
進(jìn)入runtime/local目錄,使用Crawl命令抓取網(wǎng)頁。
#mkdir -purls
#echo'http://www.oschina.net/' >urls/seed.txt
#bin/nutchcrawl urls -depth 3 -topN 5
執(zhí)行完到mysql中查看結(jié)果。
mysql>select baseUrl from webpage;//默認(rèn)數(shù)據(jù)庫是nutch
+---------------------+
|baseUrl???????????? |
+---------------------+
|http://www.163.com/ |
| NULL??????????????? |
+---------------------+
2 rows inset (0.00 sec)
2)eclipse集成nutch
Windows環(huán)境下配置elicpse集成nutch開發(fā)。
用ant命令將項(xiàng)目轉(zhuǎn)換成eclipse項(xiàng)目,參考:
http://wiki.apache.org/nutch/RunNutchInEclipse
為避免編譯,直接下載有bin包的nutch版本,apache-nutch-1.6-src.zip和apache-nutch-1.6-bin.zip兩個(gè)包。
第一步:建立工程
新建Java Project工程,命名為nutch。
復(fù)制?nutch-1.6-src 包下 java 包里的org整個(gè)包放在 項(xiàng)目的src包下。
復(fù)制?nutch-1.6-bin包里的conf 文件夾至項(xiàng)目的src包下。在conf 目錄右鍵,BuildPath ->Use as Source Folder。
復(fù)制nutch-1.6-bin 包里的 lib包下的所有jar包至項(xiàng)目目錄下。將lib下的jar包手動(dòng)在Bulid Path里引入,Libraries->Add JARS內(nèi)添加。
復(fù)制?nutch-1.6-bin 包下的 plugins 文件夾整個(gè)放在項(xiàng)目的 src 包下。
第二步:工程執(zhí)行
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,輸入幾個(gè)網(wǎng)址。
在src包下找到Crawl.java 文件
Runas ->Run Configuration ->Arguments
Programarguments輸入:crawlurls -dir out -threads 20 -depth 2
VMarguments輸入:-Xms32m -Xmx800m(注:這是設(shè)置內(nèi)存大小,如果不設(shè)置會(huì)導(dǎo)致內(nèi)存溢出異常)
上網(wǎng)下載Hadoop-core-1.2.1,用來替換Nutch1.7在windows下執(zhí)行因權(quán)限報(bào)錯(cuò)的問題,替換掉原來的Hadoop-core-1.03.jar。
下載地址:http://download.csdn.net/detail/leave00608/7060765
配置執(zhí)行Run。執(zhí)行后,看到工程目錄下out文件夾,Hadoop存儲。為了開發(fā)方便需要集成mysql,部署高版本的nutch。
3)eclipse集成nutch和mysql開發(fā)
下載apache-nutch-2.2-src.zip包,linux下ant編譯后apache-nutch-2.2-bin文件夾(集成mysql)。
第一步:新建工程nutch
復(fù)制?nutch-2.2-bin下src/ java 目錄下org到項(xiàng)目src包下。
復(fù)制?nutch-2.2-bin下conf到項(xiàng)目src包下,并conf 目錄右鍵,BuildPath ->Use as Source Folder。
復(fù)制nutch-2.2-bin下runtime/local目錄lib到項(xiàng)目目錄下,將所有jar包手動(dòng)在BulidPath里引入,Libraries->Add JARS內(nèi)添加。
復(fù)制?nutch-2.2-bi下的 runtime/local目錄plugins 到項(xiàng)目src包下,并BuildPath ->Use as Source Folder。
第二步:執(zhí)行工程
啟動(dòng)myql并檢查conf/gora.properties文件夾內(nèi)mysql配置的信息。
conf/nutch-site.xml新增
<property>
<name>plugin.folders</name>
<value>./src/plugins</value>
</property>
工程下新建urls目錄并在其目錄下新建urls.txt,輸入幾個(gè)網(wǎng)址。
Hadoop權(quán)限問題: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
執(zhí)行后查看mysql
mysql>select baseUrl from webpage;//默認(rèn)數(shù)據(jù)庫是nutch
下面就是具體在eclipse中應(yīng)用nutch開發(fā),并存儲在mysql中。總結(jié)
以上是生活随笔為你收集整理的Nutch编译及集成eclipse+mysql开发环境的部署总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos6.2关于tomcat远程不
- 下一篇: (转载)MyCat:开源分布式数据库中间