nutch1.3+hadoop0.20.2+solr3.2搭建

一 简介

1 Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
Nutch 致力于让每个人能很容易, 同时花费很少就可以配置世界一流的Web搜索引擎. Nutch必须能够做到:

  * 每个月取几十亿网页

  * 为这些网页维护一个索引

  * 对索引文件进行每秒上千次的搜索

  * 提供高质量的搜索结果

  * 以最小的成本运作

2 Hadoop 一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。

Hadoop是项目的总称,起源于作者儿子的一只玩具大象的名字。主要是由HDFS、MapReduce和Hbase组成。  

HDFS是Google File System(GFS)的开源实现。  

MapReduce是Google MapReduce的开源实现。  

HBase是Google BigTable的开源实现。

3 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到xml格式的查询结果。


二 hadoop0.20.2安装

1、选好机器,建好用户,打通各机器用户之间ssh免密码登入通道
2、在选择的所有机器上的 /etc/hosts上写好所有选择的机器的ip 主机名,
3、在所有机器上,安装好java1.6,配置好java环境变量
4、在namenode机器上,获取 hadoop0.20.2安装包,解压安装到~/hadoop目录,
5、~/hadoop/ conf配置参数设置:
masters:备namenode机器ip或主机名
slaves:datanode机器ip或主机名列表,一行一个
hdfs-site.xml:
<property>
  <name>dfs.http.address</name>
  <value>ip:port1</value>
  <description>
    The address and the base port where the dfs namenode web ui will listen on.
    If the port is 0 then the server will start on a free port.
  </description>
</property>
mapred-site.xml:
<property>
  <name>mapred.job.tracker.http.address</name>
  <value>ip:port2</value>
  <description>
    The job tracker http server address and port the server will listen on.
    If the port is 0 then the server will start on a free port.
  </description>
</property>
6 hadoop-env.sh设置好java安装目录,
7 确保配置的相关端口没被占用
8 将hadoop目录拷贝到所有选择的其他机器的用户目录中
9 ./bin/stop-all.sh
10 hdfs-site.xml

  <property>
    <name>dfs.data.dir</name>
    <value>${hadoop.tmp.dir}/dfs/data</value>
  </property>
  <property>
    <name>dfs.name.dir</name>
    <value>${hadoop.tmp.dir}/yl_dfs/</value>
  </property>
  每次重启前删掉对应目录
11 ./bin/hadoop namenode -format
12 ./bin/start-all.sh

13 遇到问题,看log日志,google解决

三 nutch1.3安装

1、在namenode机器的用户目录下,从nutch1.3分支直接拉:
svn co http://svn.apache.org/repos/asf/nutch/branches/branch-1.3/  ~/nutch
2、重新编译:
修改~/nuch/ivy/nutch-site.xml 可用的maven地址
  <property name="repo.maven.org"
    value="http://mirrors.ibiblio.org/pub/mirrors/maven2/"
    override="false"/>
3、切换到~/nuch/conf,设置 nutch-site.xml
<property>
    <name>http.agent.name</name>
    <value>nutchspider_yl</value>
</property>
<property>
    <name>http.robots.agents</name>
    <value>nutchspider_yl,*</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>

<property>
<name>mapreduce.job.jar.unpack.pattern</name>
<value>(?:classes/|lib/|plugins/).*</value>
</property>
<property>
<name>plugin.folders</name>
<value>${job.local.dir}/../jars/plugins</value>
</property>
4、将nutch目录拷贝到所有选择的机器用户目录中
5、统一配置文件管理:
在所有选择的机器上,将hadoop/conf下的配置拷贝到nutch/conf下,mv hadoop/conf  hadoop/conf_bak, ln -s hadoop/conf nuch/conf

四 sorl3.2安装

1、比较简单 ,namenode上获取软件包,解压安装到~/solr目录下
2、切换到~/solr/example下,启动服务 java -jar start.jar,默认启动端口是8983

五  网页抓取和建立索引

1、在本地磁盘中新建一个文件,写入一个入口 url ,然后将其复制到 HDFS  :
    ~/hadoop/bin/hadoop fs -copyFromLocal urls hdfs_path/urls.txt

2、配置相关爬取过滤匹配规则
根据需求设置~/nucht/conf下的automaton-urlfilter.txt  domain-urlfilter.txt  prefix-urlfilter.txt  regex-urlfilter.txt  suffix-urlfilter.txt
3、网页爬取
~/nutch/src/bin/nutch crawl hdfs_path/urls.txt -solr http://ip:8983/solr/ -dir hdfs_path/crawled -depth 3 -topN 10 
4、建立索引
~/nutch/src/bin/nutch solrindex http://ip:8983/solr/  hdfs_path/crawled/crawldb/ hdfs_path/crawled/linkdb/  -dir hdfs_path/crawled/segments/ 
生成的index在~/solr/example/solr/data/index/下面
5、通过页面http://ip:8983/solr/admin/可以进行查询搜索
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值