[Linux] Nutch 2.3.1+ Hbase + Hadoop + Solr 单机指南(四)


这是本指南的最后一篇,从开始做到完成,本熊花了一周的时间,碰到的错误也可谓千奇百怪。


纯初学者说明模式
本章节主讲实现本地模式

  • Nutch的配置与编译
  • Nutch与Hadoop,Hbase,Solr的集成
  • Nutch的启动与结果查看

0.初期设置说明

路径说明

本熊假设Hadoop的主目录为HadoopPath,Hbase的主目录为HbasePath,Nutch的主目录为NutchPath,Solr的主目录为SolrPath

以下是本熊的解压位置:
HadoopPath的值就是 /usr/Dzy/hadoop-2.5.2
HbasePath的值就是 /usr/Dzy/hbase-0.98.8-hadoop2
NutchPath的值就是 /usr/Dzy/apache-nutch-2.3.1
SolrPath的值就是 /home/as/下载/solr-4.10.3

各位可以按照自己的路径进行设置,本熊再次只为说明方便

使用版本说明

就如同本熊在第一期中提到的,要选择正确的相互适应兼容的版本,会帮您省去大堆不必要的麻烦,减少脱发,改善睡眠,提高生活质量

  • Apache Nutch 2.3.1
  • Apache Hadoop 1.2.1 and 2.5.2
  • Apache HBase 0.98.8-hadoop2 (although also tested with 1.X)
  • Apache Solr 4.10.3
  • Apache Tomcat(可选,版本随意,用于集成solr)

1.Nutch的配置与编译

此处的配置只在local模式中测试成功,deploy模式还未进行测试

  • 在NutchPath目录下,把/ivy文件夹中修改ivy.xml文件,将以下内容的注释取消(将包含此代码段开头 ````消除即可)
    <dependency org="org.apache.gora" name="gora-hbase" rev="0.6.1" conf="*->default" />
    这是将Nutch的默认的结果存储方式变更为Hbase

  • 在NutchPath目录下,把/conf文件夹中修改nutch-site.xml
    文件,在<configuration></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>My Nutch Spider</value>
    </property>
    <property>
    <name>plugin.includes</name>
    <value>protocol-http|urlfilter-regex|parse-(html|tika)|index-(basic|anchor)|urlnormalizer-(pass|regex|basic)|scoring-opic|index-anchor|index-more|languageidentifier|subcollection|feed|creativecommons|tld</value>
    <description>Regular expression naming plugin directory names to
    include. Any plugin not matching this expression is excluded.
    In any case you need at least include the nutch-extensionpoints plugin. By
    default Nutch includes crawling just HTML and plain text via HTTP,
    and basic indexing and search plugins. In order to use HTTPS please enable
    protocol-httpclient, but be aware of possible intermittent problems with the
    underlying commons-httpclient library.
    </description>
    </property>
    这三个property分别指的是Nutch的默认存储类型,爬虫的名字,和插件库的位置,如果错误中出现job-XXXXX的情况,那就是没有配置好插件库property

  • 在相同目录下,修改regex-urlfilter.txt,将最后部分修改为
    # accept anything else
    #+.
    +^http://([a-z0-9].)nutch.apache.org/
    这里写的是抓取过滤的正则表达式,各位可以按各自所需修改

  • 网上有些说也要修改nutch-default.xml,其实没有这个必要,若在nutch-site.xml存在配置,会优先选择其中的属性

  • 在相同目录下修改gora.properties文件,添加以下配置,确保存储在Hbase上
    gora.datastore.default=org.apache.gora.hbase.store.HBaseStore

  • 在NutchPath目录下,在/usr/Dzy/apache-nutch-2.3.1/runtime/local/文件下创建urls文件夹

  • urls文件夹中创建seed.txt,在其中输入

      http://nutch.apache.org/
    

这里存放的是Nutch要爬取的网页

  • 在NutchPath路径下,启动终端,输入以下命令,开始Ant编译

      ant runtime
    

编译完成后目录结构是这样的,多出来一个runtime


目录结构
  • 最后一步就是,将Nutch数据保存到Hbase的jar包存到local内
    HadoopPath下/lib中所有与hbase有关的jar包
    复制到NutchPath目录下的/runtime/local/lib
    所需要的jar

至此Nutch的准备工作就算完成了


2.Nutch启动

如果一步不差的完成了本熊指南前三期的准备工作,那就接下来就是按顺序启动服务了

  • 启动Solr
    在TomcatPath目录下执行以下命令,启动Solr
    bash startup.sh

  • 启动Hadoop
    在HadoopPath下,在终端输入以下命令,启动Hadoop

      bash ./sbin/start-all.sh
    
  • 启动Hbase
    在HbasePath目录下,启动终端输入

      bash ./bin/start-hbase.sh
    
  • 启动Nutch
    在NutchPath下,输入以下指令
    cd /usr/Dzy/apache-nutch-2.3.1/runtime/local
    ./bin/crawl /usr/Dzy/apache-nutch-2.3.1/runtime/local/urls NutchTable http://localhost:8080/solr/collection1 2
    这段指令的参数的意义:
    urls位置---
    */usr/Dzy/apache-nutch- 2.3.1/runtime/local/urls *
    Hbase中创建的表名---
    NutchTable
    SolrCore的位置---
    http://localhost:8080/solr/collection1
    迭代次数---
    2
    以上参数可以按照自己的需要调整,可以参考Apache Nutch的说明文档

  • 如果一切OK的话,会出现以下状态,如果injectjob时间极长时可以检查一下Hbase版本配置


    启动画面
  • 最后参照之前的关于solr步骤与Hbase的步骤,可以在solr中看见查询的结果


    solr中查询结果

local实验完成,这个实验只是简单的单机配置,若想要更加深入的了解Nutch的工作原理,可以在ant编译部分输入以下指令

    ant eclipse

这样可以在eclipse中加载Nutch项目,可以在这基础上做更贴近开发者自身想法的改进


第四期结束

到此为止,本熊把全部的实验过程都记录了下来,后在小Y的电脑上也试验成功了。累得本熊玩了好几天,但是本熊也很好奇,如何转化这些抓取的资源呢?也许这是向小Y这样的学术派才会考虑的问题,本熊只是俗熊,常常苦恼在三餐选什么,总之愿本文能对各位起到小小的帮助


相关内容
[Linux] Nutch 2.3.1+ Hbase + Hadoop + Solr 单机指南(一)
[Linux] Nutch 2.3.1+ Hbase + Hadoop + Solr 单机指南(二)
[Linux] Nutch 2.3.1+ Hbase + Hadoop + Solr 单机指南(三)
[Linux] Nutch 2.3.1+ Hbase + Hadoop + Solr 单机指南(四)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容