欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

NUTCH公开课:从搜索引擎到网络爬虫

程序员文章站 2024-01-18 16:57:04
...

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

 

大数据这个术语最早的引用可追溯到Nutch。当时,大数据用来描述为更新网络搜索索引需要同时进行批量处理或分析的大量数据集。现在,大数据的含义已经被极大地发展了,业界将大数据的特性归纳为4个“V”。Volume数据体量巨大,Variety数据类型繁多,Value价值密度低,商业价值高,Velocity处理速度快。
 

 

课程背景:Nutch诞生于20028月,是Apache旗下的一个用Java实现的开源搜索引擎项目,自Nutch1.2版本之后,Nutch已经从搜索引擎演化为网络爬虫,接着Nutch进一步演化为两大分支版本:1.X2.X,最大的区别在于2.X对底层的数据存储进行了抽象以支持各种底层存储技术。在Nutch的进化过程中,产生了HadoopTikaGora三个Java开源项目。如今这三个项目都发展迅速,极其火爆,尤其是Hadoop,其已成为大规模数据处理的事实上的标准。Tika使用多种现有的开源内容解析项目来实现从多种格式的文件中提取元数据和结构化文本,Gora支持把大数据持久化到多种存储实现。

 

课程大纲:

1Nutch是什么?

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

2Nutch的设计初衷?

商业搜索引擎不开源,搜索结果不纯粹是根据网页本身的价值进行排序,而是有众多商业利益考虑。Nutch提供了开源的解决方案,帮助人们很容易地建立一个搜索引擎,为用户提供优质的搜索结果,并能从一台机器扩展到成百上千台。

3、为什么要学习Nutch

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

4Nutch的设计目标 ?

 每个月抓取几十亿网页

为这些网页维护一个索引

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

提供高质量的搜索结果

以最小的成本运作

5Nutch的发展历程?

11年发展历程,3大分支版本

强调重用,诞生了Java开源项目HadoopTikaGora

不重新发明*,使用了大量第三方开源项目

6Nutch的整体架构?

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

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

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

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

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

7Nutch 3大分支版本?

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

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

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

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

8Nutch的应用领域?

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

9nutch的使用?

一些具体的实践方法及演示

 

讲师介绍: 

杨尚川,系统架构设计师,系统分析师,2013年度优秀开源项目APDPlat发起人,资深Nutch搜索引擎专家。多年专业的软件研发经验,从事过管理信息系统(MIS)开发、移动智能终端(Win CEAndroidJava ME)开发、搜索引擎(nutchlucenesolrelasticsearch)开发、大数据分析处理(HadoopHbasePigHive)等工作。目前为独立咨询顾问,专注于大数据、搜索引擎等相关技术,为客户提供NutchLuceneHadoopSolrElasticSearchHBasePigHiveGora等框架的解决方案、技术支持、技术咨询以及培训等服务。