caodd1215 发表于 2015-11-11 10:51:53

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=&quot;org.apache.gora&quot; name=&quot;gora-hbase&quot; rev=&quot;0.5&quot; conf=&quot;*->default&quot;/>注释消掉
④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]
查看完整版本: hadoop1.0.1+hbase0.94.14+nutch2.3爬虫