小试nutch2.1

最近学习机器学习,弄点小数据研究算法对于学习阶段还不错,不过不和实际数据结合总觉得是在玩玩具,因此想抓点数据搞点小应用。

nutch有2.1版本了,看介绍还不错,和hbase、gora结合使用,这样抓取数据的分布式存储和处理都一下ok了,那就试试吧。

前提

我的主机是centos系统,java和hadoop都已安装并正常使用,hadoop是按伪分布式方式部署的。

hbase版本使用hbase-0.90.6.tar.gz,nutch使用apache-nutch-2.1-src.tar.gz

hbase安装使用

按nutch2.1 wiki文档,hbase的版本最好是0.90.x且大于等于0.90.4,我下载了0.90.6,参考http://blog.csdn.net/hguisu/article/details/7244413配置运行成功,下面是主要步骤:

1:解压

 tar xfz hbase-0.90.6.tar.gz

cd hbase-0.90.6

2:启动

bin/start-hbase.sh即可

就这两步就可以了,不能再简单了

3:停止hbase

bin/stop-hbase.sh

4:命令行终端

bin/hbase shell

常用命令:

list    --    查看有哪些表

scan 'tablename'  --     查看表内容

put

get

具体使用请自己google,太多了,我这刚学的不太懂

nutch2.1安装使用

按http://wiki.apache.org/nutch/Nutch2Tutorial的步骤做就可以了,没啥特别的

第一步,编辑conf/nutch-site.xml,内容如下

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
 <name>storage.data.store.class</name>
 <value>org.apache.gora.hbase.store.HBaseStore</value>
 <description>Default class for storing data</description>
</property>
</configuration>

第二步,去掉ivy/ivy.xml下面这一行的注释:

<dependency org="org.apache.gora" name="gora-hbase" rev="0.2" conf="*->default" />

第三步,在conf/gora.properties添加下面一行:

gora.datastore.default=org.apache.gora.hbase.store.HBaseStore



除了wiki上提到的,最后要加上下面步骤:

编辑conf/nutch-default.xml

为http.agent.name属性写一个值,下面有说明不能为空,且告诉你该怎么写

另外http.robots.agents属性要在*前面加呢上面写的值,用逗号和*号分隔,下面是一个示例:

<property>
  <name>http.agent.name</name>
  <value>yourorg</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>

<property>
  <name>http.robots.agents</name>
  <value>yourorg,*</value>
  <description>The agent strings we'll look for in robots.txt files,
  comma-separated, in decreasing order of precedence. You should
  put the value of http.agent.name as the first agent name, and keep the
  default * at the end of the list. E.g.: BlurflDev,Blurfl,*
  </description>
</property>
上面yourorg替换为自己的名称即可

这样就可以用bin/nutch crawl urls -depth 3 -topN 50这样的命令运行了,其中urls里边放置你要抓取的网站文本文件,比如我写个a.txt,里边按行写网站url就可以,可以有多个文件。

抓取文件可以用bin/nutch readdb方式查看信息,也可以到hbase终端查看

后面我会再写一些文章讲述如何操作nutch抓取,结果查看,结果处理等

你可能感兴趣的:(小试nutch2.1)