人物介绍


姓名:DougCutting

个人名望:开发出开源全文检索引擎工具包Lucene。

个人简介/主要荣誉:除了 Lucene,还开发了著名的网络爬虫工具 Nutch,分布式系统基础架构Hadoop,这些大师级作品都是开源的。目前任职 Apache 软件基金会主席。

网络上对 Doug Cutting 的评价:“他开发出卓越超群的全文检索引擎工具包(Lucene/Solr)以及为世界打开了一扇通往大数据的大门。”“开源的Lucene 以及 Hadoop 为全球创造了无数的财富以及就业机会。”

 

 

拓展:ITWorld:2014年全球最杰出的14位编程天才

2014年7月29日, ITWorld 整理全球最杰出的 14 位程序员,一起来看下让我们膜拜的这些大神都有哪些?(排名不分先后)

地址:http://www.199it.com/archives/260767.html

 

 

从搜索引擎到网络爬虫

一、Nutch相关介绍

1、简介:

Nutch是Apache旗下Java开源项目,最初是一个搜索引擎,现在是一个网络爬虫

(1)、搜索引擎中国排名:


(2)、网络爬虫

     又称网页蜘蛛,是一种按照一定的规则,自动抓取万维网信息的程序或者脚本

 

2、Nutch设计初衷

开源、公平:商业搜索引擎不开源,搜索结果不是纯粹的根据网页本身的价值进行排序,而是用众多的商业利益考虑。有的搜索引擎允许竞价排名,比如百度,这样有的搜索结果不全是和站点内容相关。

Nutch是开放源代码,因此任何人都可以查看它的排序算法是如何工作的。Nutch对学术搜索政府类站点的搜索来说,是个好选择。因为一个公平的排序结果是非常重要的。

自己搜索引擎:如果你不喜欢其它搜索引擎展现结果的方式,那就用Nutch写自己的搜索引擎吧。Nutch非常灵活,可以被很好的客户定制并集成到你的应用程序中。使用Nutch的插件机制,Nutch
可以作为一个搜索不同信息载体的搜索平台。当然,最简单的就是集成Nutch到你的站点,为你的用户提供搜索服务。

我们并没有google 的源代码,因此学习搜索引擎Nutch 是个不错的选择。了解一个大型分布式的搜索引擎如何工作是一件让人很受益的事情。

3、Nutch发展历程

Nutch诞生于2002年8月,是apache旗下的一个用Java实现的开源索引引擎项目,子Nutch1.2版本之后,Nutch已经从搜索引擎演化为网络爬虫,接着Nutch进一步演化为两大分支版本:1.X2.X,最大区别在于2.X对底层数据存储进行了抽象支持各种底层存储技术

在Nutch的进化过程中,产生了HadoopTikaGora三个Java开源项目。如今三个项目都发展迅速,极其火爆,尤其是Hadoop,已成为大规模数据处理的事实上的标准

Tika使用多种现有的开源内容解析项目来实现从多种格式的文件中提取元数据和结构化文本,Gora支持把大数据持久化到多种存储实现。

-------------------------------时间表----------------------------------

2002年8月由Doug Cutting发起,托管于Sourceforge,之后发布了0.4、

0.5、0.6三个版本

2004年9月Oregon State University(俄勒冈州立大学)采用Nutch

2004年9月Creative Commons(知识共享)推出基于Nutch的搜索服务

2005年1月加入Apache的孵化器

2005年6月孵化结束成为Lucene的子项目

2005年8月发布版本0.7( Apache Lucene sub-project)

2005年10月发布版本0.7.1

2006年3月发布版本0.7.2

2006年7月发布版本0.8(全新的架构,基于Hadoop0.4 ,Hadoop诞生

2006年9月发布版本0.8.1

2007年4月发布版本0.9

2009年3月发布版本1.0(Tika诞生,0.1-incubating)

2010年4月Nutch成为Apache顶级项目

2010年6月发布版本1.1

2010年9月发布版本1.2

2011年6月发布版本1.3从搜索引擎到网络爬虫

2011年11月发布版本1.4

2012年6月发布版本1.5

2012年7月发布版本2.0( 2.X Gora诞生,table-basedarchitecture )

2012年7月发布版本1.5.1

2012年8月Nutch诞生十周年

2012年10月发布版本2.1( 2.X开始支持elasticsearch )

2012年12月发布版本1.6

2013年6月发布版本2.2(crawler-commons 诞生)

2013年6月发布版本1.7(crawler-commons 诞生)

2013年7月发布版本2.2.1

-----------------------------------------------------------------------

4、为什么要学习Nutch

搜索技术是信息时代的必备技术之一,没有搜索功能的软件无法想象的,而搜索引擎是搜索技术的集大成者。通过Nutch的学习,可以对百度、谷歌这样的搜索巨头的内部机制有所了解,并能根据自己的需要打造适合自己的搜索引擎,当然,也可以把搜索技术应用到几乎所有软件开发中。

5、Nutch的设计目标

每个月抓取几十亿网页

为这些网页维护一个索引

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

提供高质量的搜索结果

最小的成本运作

6、Nutch的三大分支版本

  上文讲了Nutch1.X和Nutch2.X的区别,主要是2.X对底层数据存储进行了抽象,以支持各种底层存储技术。

1.X系列可用于生产环境2.X系列不成熟

这里可以对Nutch整体分为3大分支版本

Nutch1.2是一个完整搜索引擎

Nutch1.7是一个基于HDFS网络爬虫

Nutch2.2.1是一个基于Gora网络爬虫

7、Nutch的整体架构

      插件机制、数据抓取、数据解析、链接分析、建立索引、分布式搜索等。

插件机制:对于一个搜索引擎来说,最终可能由成百上千台服务器组成。然而,初创公司最初可能只有几台机器作为尝试,随着公司的发展逐步增加机器,因此,线性可扩展分布式存储分布式计算是至关重要的。

Hadoop诞生:Nutch参考了Google的两篇论文:MapReduce计算模型以及GFS存储模型,并做了实现,后来把这两大部分剥离出来形成独立的开源项目Hadoop。由此可知,Hadoop诞生于Nutch,核心分布式计算分布式存储组成,是MapReduceGFSJava开源实现

Gora:Nutch使用HDFS作为存储实现一直持续了很多年,然而使用HDFS有很多限制,后来考虑对存储层进行抽象,剥离并形成了新的开源项目Gora,以支持多种存储技术,包括RDBMSNoSQL.

Tika:对于搜索引擎来说,需要抓取各种各样的文件,解析这些不同格式的文件是一个难题,为了简化设计,也为了重用,于是诞生了Tika,一个专门为内容分析而诞生的工具箱。

8、Nutch的应用领域

站内搜索引擎、全网搜索引擎、垂直搜索引擎、数据采集

9、Nutch的不足

所有文件都是只能写一次

    批量处理架构导致无实时性

    没有用户管理图形界面,只有命令行接口

Web2.0的普及导致的js分析和身份认证等问题

10、Nutch与Hadoop

Hadoop是大数据的核心技术之一,而NutchHadoop之大成,是Hadoop的源头。学习Hadoop没有数据怎么办?用Nutch抓!学了Hadoop的Map
Reduce以及HDFS,没有实用案例怎么办?学习Nutch!Nutch的很多代码是用Map ReduceHDFS写的,哪里还能找到比Nutch更好的Hadoop应用案例呢?

二、Nutch的下载

1、Nutch所有版本下载地址:

http://archive.apache.org/dist/nutch/

2、Nutch官网下载地址:

网址:http://nutch.apache.org/downloads.html

进入显示如下最新版本: 2.2.1


注意: bin是运行包、src是源码包、tar是Linux包。

Linux虚拟机安装版本可以选择后缀:bin.tar.gz (如:apache-nutch-1.9. bin.tar.gz)

 

nutch从搜索引擎到网络爬虫的更多相关文章

  1. Tomcat和搜索引擎网络爬虫的攻防

    不知道广大程序员朋友们注意到一个现象么?使用百度是无法搜索到淘宝网的网页.为什么会造成这种现象?这就要从网络爬虫说起了. 咱们程序员假如自己搭设个人网站,在上面分享少量自己的技术文章,面临的一个重要问 ...

  2. Python网络爬虫与如何爬取段子的项目实例

    一.网络爬虫 Python爬虫开发工程师,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页 ...

  3. 一个大数据方案:基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎

    网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并提供了大量的配置定制选项.由于网络爬虫只负责网络资源的抓取,所以,需要一个分布式搜索引擎, ...

  4. 【架构】基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎

    网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并提供了大量的配置定制选项.由于网络爬虫只负责网络资源的抓取,所以,需要一个分布式搜索引擎, ...

  5. 基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎

    基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎 网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并 ...

  6. Apache Nutch v2.3 发布,Java实现的网络爬虫

    http://www.oschina.net/news/59287/apache-nutch-2-3 Apache Nutch v2.3已经发布了,建议所有使用2.X系列的用户和开发人员升级到这个版本 ...

  7. [Search Engine] 搜索引擎技术之网络爬虫

    随着互联网的大力发展,互联网称为信息的主要载体,而如何在互联网中搜集信息是互联网领域面临的一大挑战.网络爬虫技术是什么?其实网络爬虫技术就是指的网络数据的抓取,因为在网络中抓取数据是具有关联性的抓取, ...

  8. 【搜索引擎Jediael开发笔记1】搜索引擎初步介绍及网络爬虫

    详细可参考 (1)书箱:<这就是搜索引擎><自己动手写网络爬虫><解密搜索引擎打桩实践> (2)[搜索引擎基础知识1]搜索引擎的技术架构 (3)[搜索引擎基础知识2 ...

  9. 网络爬虫与搜索引擎优化(SEO)

    爬虫及爬行方式 爬虫有很多名字,比如web机器人.spider等,它是一种可以在无需人类干预的情况下自动进行一系列web事务处理的软件程序.web爬虫是一种机器人,它们会递归地对各种信息性的web站点 ...

随机推荐

  1. Nowcoder OI赛制测试2 F 假的数学题 - 斯特林公式 + 二分

    Description 给定$X$, 找到最小的$N$ 使得$N! > X^X$ 数据范围:  $x <= 1e11$ Solution $X^X$ 太大, 高精也存不过, 所以取对数 : ...

  2. 20172306《Java程序设计与数据结构》第八周学习总结

    20172306<Java程序设计>第8周学习总结 教材学习内容总结 第十章最开始自己看的时候,没怎么看懂,等老师讲完之后,又看了一遍,就理解了很多.第十章主要学习了以下几点: 1.对于几 ...

  3. jsp页面错误的全局处理

    网上搜索spring mvc项目全局异常处理: 大致可以找到两种方案 : 方案1: ExceptionHandlerResolver . spring 提供了两种默认实现,当然你也可以自己实现.. 方 ...

  4. android 4.0 webview 无法播放视频

    Android4.0+webview中不能播放网页视频解决方法: 1.修改AndroidManifest.xml文件 在application中添加如下属性 android:hardwareAccel ...

  5. java面试感悟【一】

    我最终选择不包装工作经验,或许是因为我怂,或许是因为一些莫名其妙的坚持…… 然而结果就是在boss上沟通了20多家,只有7家让我投了简历,1家跟我说要我发个时间段给他稍后告诉我面试时间,然后就没有然后 ...

  6. maven-javadoc-plugin 出现错误Unsupported major.minor version 51.0

    [INFO] --- maven-javadoc-plugin:3.0.0:jar (attach-javadocs) @ eii-frame-sms ---[WARNING] Error injec ...

  7. 《MinDoc 接口文档在线管理系统》

    项目简介 MinDoc 是一款针对IT团队开发的简单好用的文档管理系统. MinDoc 的前身是 SmartWiki 文档系统.SmartWiki 是基于 PHP 框架 laravel 开发的一款文档 ...

  8. 【Linux】DNS基础(一)

    DNS基础 DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,域名服务器是进行域名(domain name)和与之相对应的IP地址 ...

  9. springboot mybatis 分页整合

    spring boot 整合mybatis ,分两块mybatis 整合,分页整合.   1.pom文件增加 <dependency> <groupId>org.mybatis ...

  10. Codeforces Round #524 (Div. 2) F. Katya and Segments Sets(主席树)

    https://codeforces.com/contest/1080/problem/F 题意 有k个区间,区间的种类有n种,有m个询问(n,m<=1e5,k<=3e5),每次询问a,b ...