nutch-2.2.1 hadoop-1.2.1 hbase-0.92.1 集群部署


國內私募機構九鼎控股打造APP,來就送 20元現金領取地址:http://jdb.jiudingcapital.com/phone.html
內部邀請碼:C8E245J (不寫邀請碼,沒有現金送)
國內私募機構九鼎控股打造,九鼎投資是在全國股份轉讓系統掛牌的公眾公司,股票代碼為430719,為中國PE第一股,市值超1000億元。 

------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

原文地址: http://www.cnblogs.com/i80386/p/3540389.html

參考網站:
http://blog.csdn.net/weijonathan/article/details/10178919 一個完整的部署過程,只是版本有所區別
http://m.blog.csdn.net/blog/WeiJonathan/9251597 楊尚川的博客(nutch 分布式運行)
http://qindongliang1922.iteye.com/blog/1977053 三劫散仙博客(如何部署hbase)
http://wiki.apache.org/nutch/Nutch2Tutorial 官網

一:nutch2.x與nutch1.x的主要區別:數據訪問層的抽象
nutch 2.x----gora-core-0.3----gora-hbase----hbase

gora-core-0.3 apache-gora提供了對nosql訪問的統一接口。(注解:在上述鏈接里可以看到對其他數據庫的支持)
gora-hbase 針對hbase實現了gora的接口

 

:
有了這兩步nutch2.x就可以運行在Hbase上了。
支持nosql的優勢:
當獲取了外鏈要進行url排重的時候,以前基於hdfs的時候是讀取之前全部的url用mapreduce實現排重(好沉重的趕腳),支持了nosql只需要一步查找即可。

二:准備材料

hadoop-1.2.1 http://archive.apache.org/dist/hadoop/core/hadoop-1.2.1/hadoop-1.2.1.tar.gz
hbase-0.92.1 http://archive.apache.org/dist/hbase/hbase-0.92.1/hbase-0.92.1.tar.gz
nutch-2.2.1 http://archive.apache.org/dist/nutch/2.2.1/apache-nutch-2.2.1-src.tar.gz

 

 

 

使用wget下載。

三:安裝hadoop(略)
我這里做了2個機器的hadoop集群,如下所示:

192.168.2.51 Master.Hadoop
192.168.2.52 Slave1.Hadoop


 
 

四:安裝Hbase(第一次配置簡單點,使用自帶的zookeeper)
將hbase拷貝到Hadoop根目錄下 參考命令:

cp hbase-0.92.1.tar.gz /home/hadoop-1.2.1/ (之所以這樣做可以方便以后擴展hadoop集群,直接scp就行了)

 

解壓並重命名 參考命令:

tar -zxvf hbase-0.92.1.tar.gz
mv hbase-0.92.1 hbase
cd hbase 

 

修改 hbase-env.sh,參考配置:

# The java implementation to use. Java 1.6 required.
# export JAVA_HOME=/usr/java/jdk1.6.0/ 
export JAVA_HOME=/usr/java/jdk 注解:設置java_home
export HBASE_CLASSPATH=/home/hadoop-1.2.1/conf 
export HBASE_MANAGES_ZK=true
...
# The directory where pid files are stored. /tmp by default. 
export HBASE_PID_DIR==/home/hadoop-1.2.1/hbase/pids (注解:這個最好不要采用默認,放在/tmp很不安全,有可能被誤刪)

 


修改hbase-site.xml,參考配置:

<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://Master.Hadoop:9000/hbase</value> // 注解:這里與hadoop的hdfs建立了聯系,如果你hadoop dfs -ls 發現沒有hbase這個文件夾,
  </property> 運行:hadoop dfs -ls /hbase
  <property>
    <name>hbase.master</name>
    <value>192.168.2.51:60000</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>192.168.2.52</value>
  </property>
</configuration>

 

vim regionservers 參考配置:

192.168.2.51
192.168.2.52

 

hadoop版本一致化:(版本不一致會出現異常)

cp /home/hadoop-1.2.1/hadoop-core-1.2.1.jar /home/hadoop-1.2.1/hbase/lib/

 

並刪除hbase自帶的hadoop版本。

將配置好的hbase拷貝到slave節點(192.168.2.52)

cd /home/hadoop-1.2.1
scp -r hbase root@192.168.2.52:/home/hadoop-1.2.1/

 

啟動hbase

cd /home/hbase/
bin/start-hbase.sh

 


啟動成功,運行jps命令:

16572 Resin
30282 HMaster
5275 NameNode
5563 JobTracker
5461 SecondaryNameNode
5886 Jps
30470 HRegionServer

 


其中HMaster即hbase的主進程。


五:安裝nutch
解壓(注:這個不需要解壓到hadoop根目錄,因為nutch是才操作hadoop的,在master上有就可以了)

cd /home/
tar -zxvf apache-nutch-2.2.1-src.tar.gz //將nutch解壓到home下

 

vim /home/nutch-2.2.1/ivy/ivy.xml

 

將此行的注釋去掉 <dependency org="org.apache.gora" name="gora-core" rev="0.3" conf="*->default"/> 
將hbase-site.xml拷貝到nutch的配置文件(建立與hbase的聯系???)
ant 注解:編譯過程很慢,會去加載大量的jar包。
注入種子:

mkdir urls
vim seed.txt
http://news.163.com/
http://www.gov.cn/
http://www.sbsm.gov.cn/
http://news.stnn.cc/china/
http://www.zaobao.com/wencui/social
http://www.xinhuanet.com/politics/1.htm
http://news.china.com.cn/shehui/node_7185045.htm

 

上傳的hdfs,完成種子url的注入

hadoop dfs -put urls urls

 

修改采集規則:

regex-urlfilter.txt 
# accept anything else
+^http://news.163.com/
+^http://www.sbsm.gov.cn/
+^http://www.gov.cn/
+^http://news.stnn.cc/china/
+^http://www.zaobao.com/wencui/social
+^http://www.xinhuanet.com/politics
+^http://news.xinhuanet.com/politics/\d+-\d+/\d+/c_\d+.htm
+^http://news.china.com.cn/\d+-\d+/\d+/content_\d+.htm
+^http://news.china.com.cn/shehui/node_\d+(_\d+)?.htm

 

注解:conf 下面的配置文件都會被打包到ant后生成的job文件中,所以這里要提前修改(以后要是要注入新的采集規則需要解壓job文件修改)
修改配置(集群環境運行)

cd runtime/deploy 
unzip -d apache-nutch-2.2.1 apache-nutch-2.2.1.job 
rm apache-nutch-2.2.1.job 
cd apache-nutch-2.2.1 
rm lib/hbase-***.jar 
cp /home/hadoop-1.2.1/hbase/hbase-0.92.1.jar lib 
zip -r ../apache-nutch-2.1.job ./* 
cd .. 
rm -r apache-nutch-2.1 

 

運行命令:

cd runtime/deploy/bin
vim nutch 閱讀shell發現:
# figure out which class to run
if [ "$COMMAND" = "crawl" ] ; then
class="org".apache.nutch.crawl.Crawler

 

發現crawl命令運行Crawler類

vim org.apache.nutch.crawl.Crawler (參考這個命令找到那個Crawler類)

 

得到命令格式為:

System.out.println("Usage: Crawler (<seedDir> | -continue) [-solr <solrURL>] [-threads n] [-depth i] [-topN N] [-numTasks N]");
cd /runtime/deploy

 

於是運行如下命令:

bin/nutch crawl urls -topN 1000 -depth 50

 

如果運氣足夠好,你會在Hbase shell 后 list 后 發現一個 'webpage' 表

附本人配置時候設置的 /etc/profile:

#java
export JAVA_HOME=/usr/java/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#hadoop
export HADOOP_HOME=/home/hadoop-1.2.1
export PATH=$PATH:$HADOOP_HOME/bin

#zookeeper
export ZOOKEEPER_HOME=${HADOOP_HOME}/zookeeper
export PATH=${PATH}:${ZOOKEEPER_HOME}/bin

#hbase
export HBASE_HOME=/home/hadoop-1.2.1/hbase
export PATH=$PATH:$HBASE_HOME/bin
export CLASSPATH=$CLASSPATH:$HBASE_HOME/lib

#nutch 2.2
export NUTCH_HOME=/home/hadoop-1.2.1/nutch/runtime/local

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM