hadoop1.0.1+hbase0.94.14+nutch2.3爬虫
hadoop1.0.1+hbase0.94.14+nutch2.3爬虫(伪分布式)根据nutch官网最新的nutch版本选择nutch2.3,官网推荐的hadoop和hbase的版本分别是1.0.1或2.4.0和0.94.14。(注意:选择顺序应该是nutch-hbase-hadoop,而这些低版本的只支持32位Linux系统。)
所需工具:centos-6.4-i386.bin(32位Linux系统)
jdk-7u79-linux-i586.tar.gz
hadoop-1.0.1-bin.tar.gz
hbase-0.94.14.tar.gz
apache-ant-1.9.4-bin.tar.gz
sonar-ant-task-2.1.jar
1.centos系统安装及基础配置
①安装增强功能
②jdk安装
③ssh无密码登录
(详细可参考http://blog.iyunv.com/u014319687/article/details/45875265)
2.hadoop-1.0.1伪分布配置
①早期的hadoop修改配置文件只需修改core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml。
core-site.xml、hadoop-env.sh、hdfs-site.xml与上个博客配置一样。
mapred-site.xml修改如下:
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
②格式化name节点
bin/hadoop namenode -format
③运行hadoop
bin/start-all.sh
输入jps查看启动项
当有DataNode、NameNode、SecondaryNameNode、JobTracker、TaskTracker、Jps。即OK!可进入端口号localhost:50070查看hadoop可视化界面(不得不吐槽1版本界面粗糙)
3.hbase-0.94.14伪分布配置
①修改hbase-env.sh、hbase-site.xml文件。在hbase/conf目录下
hbase-env.sh与上篇博客一样。
hbase-site.xml修改基本与上篇博客一致,但在配置root文件路径最好修改为file:/usr/hbase-0.94.14/rootdata。即放置在具体的文件夹内,而不是放在hdfs上(虽然网上大部分hbase配置教程都是放在hdfs上,但经过本人亲身体会,运行nutch容易出现找不到hdfs上的文件的错误)
②将hadoop目录下的hadoop-1.0.1-core.jar拷贝到hbase下lib文件夹中,删掉自带的hadoop-1.0.4-core.jar。
③运行hbase(运行之前需启动hadoop)
bin/start-hbase.sh
输入jps查看启动项
当有DataNode、NameNode、SecondaryNameNode、JobTracker、TaskTracker、HMaster、HRegionServer、HQuormPeer、Jps。即OK!可进入端口号localhost:60010查看hbase可视化界面。(如果迟迟无法打开,可能是hadoop启动了安全模式,解除安全模式指令bin/hadoopdfs admin -safemode leave,再打开界面)输入指令bin/hbase shell,可
这里有个(偷懒)小技巧:vi ~/.bashrc,在文件中添加export PATH=hadoop路径/bin,exportPATH=hbase路径/bin,然后source ~/.bashrc。这样可以直接在终端命令行调用hadoop、hbase指令。
3.Nutch伪分布配置(重头戏)
①解压ant,配置ant环境变量(类似JAVA环境变量)
②将sonar-ant-task-2.1.jar拷贝到nutch目录下
③修改gora.properties、nutch-site.xml、ivy.xml文件。(gora.properties、nutch-site.xml在nutch/conf目录下,ivy.xml在nutch/ivy目录下)
gora.properties文件配置:
查找gora.datastore
修改为 gora.datastore.default=org.apache.gora.hbase.store.HBaseStore (将默认存储方式设为HBase)
nutch-site.xml文件配置:
<configuration>
<property>
<name>storage.data.store.class</name>
<value>org.apache.gora.hbase.store.HBaseStore</value>
<description>Default class for storing data</description>
</property>
<property>
<name>http.agent.name</name>
<value>agent</value> (一定要给代理命名)
<description>HTTP 'User-Agent' request header. MUST NOT be empty -
please set this to a single word uniquely related to your organization.
NOTE: You should also check other related properties:
http.robots.agents
http.agent.description
http.agent.url
http.agent.email
http.agent.version
and set their values appropriately.
</description>
</property>
</configuration>
修改ivy.xml文件:
将<dependencyorg="org.apache.gora" name="gora-hbase" rev="0.5" conf="*->default"/>注释消掉
④ant编译
终端:nutch目录下输入ant(接下来就是等待了,因电脑配置而异少则十分钟,多则半个小时往上走。)
当出现BUILD SUCCESSFUL时,就ant完毕。
4.nutch爬虫抓取步骤
由于是伪分布式安装,所以只有本地抓取和伪分布式抓取。ant完毕之后,nutch目录下会多出个runtime文件夹,里面有deploy和local文件夹。local是本地抓取,deploy是分布式和伪分布式抓取。
①本地抓取
首先在local目录下创建文件夹urls,并创建文件url,写入网站url(如:http://news.yahoo.com/)
执行 inject命令,并执行crawlId为news。
bin/nutch inject urls -crawlId news
在hbase的shell下执行scan 'news-webpage',查看news-webpage信息。
此后分别执行:(抓取的每个步骤,熟悉一下流程,其实只需要输入bin/nutchinject urls -crawlId news命令即可)
/nutch generate -topN5 -crawlIdnews(会产生两个序列号)
/nutchfetch两序列号 -crowlId news -threads 50
/nutchparse 两序列号-crawlId news
/nutchupdatedb -crawId news
②伪分布式抓取
在deploy目录下创建文件夹urls,并创建文件url,写入网站url(如:http://news.yahoo.com/)
将urls部署到hdfs中:hadoop fs -put urls urls
执行:bin/crawl urls news 2(进行两次爬虫)
可进入端口号localhost:50030查看执行过程。
版权声明:本文为博主原创文章,未经博主允许不得转载。
页:
[1]