小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

基于Nutch+Hadoop+Hbase+ElasticSearch的網(wǎng)絡(luò)爬蟲及搜索引擎

 開心豆豆2010 2017-04-14

網(wǎng)絡(luò)爬蟲架構(gòu)在Nutch+Hadoop之上,是一個(gè)典型的分布式離線批量處理架構(gòu),有非常優(yōu)異的吞吐量和抓取性能并提供了大量的配置定制選項(xiàng)。由于網(wǎng)絡(luò)爬蟲只負(fù)責(zé)網(wǎng)絡(luò)資源的抓取,所以,需要一個(gè)分布式搜索引擎,用來對(duì)網(wǎng)絡(luò)爬蟲抓取到的網(wǎng)絡(luò)資源進(jìn)行實(shí)時(shí)的索引和搜索。

 

搜 索引擎架構(gòu)在ElasticSearch之上,是一個(gè)典型的分布式在線實(shí)時(shí)交互查詢架構(gòu),無單點(diǎn)故障,高伸縮、高可用。對(duì)大量信息的索引與搜索都可以在近 乎實(shí)時(shí)的情況下完成,能夠快速實(shí)時(shí)搜索數(shù)十億的文件以及PB級(jí)的數(shù)據(jù),同時(shí)提供了全方面的選項(xiàng),可以對(duì)該引擎的幾乎每個(gè)方面進(jìn)行定制。支持RESTful 的API,可以使用JSON通過HTTP調(diào)用它的各種功能,包括搜索、分析與監(jiān)控。此外,還為Java、PHP、Perl、Python以及Ruby等各 種語(yǔ)言提供了原生的客戶端類庫(kù)。

 

網(wǎng)絡(luò)爬蟲通過將抓取到的數(shù)據(jù)進(jìn)行結(jié)構(gòu)化提取之后提交給搜索引擎進(jìn)行索引,以供查詢分析使用。由于搜索引擎的設(shè)計(jì)目標(biāo)在于近乎實(shí)時(shí)的復(fù)雜的交互式查詢,所以搜索引擎并不保存索引網(wǎng)頁(yè)的原始內(nèi)容,因此,需要一個(gè)近乎實(shí)時(shí)的分布式數(shù)據(jù)庫(kù)來存儲(chǔ)網(wǎng)頁(yè)的原始內(nèi)容。

 

分布式數(shù)據(jù)庫(kù)架構(gòu)在Hbase+Hadoop之上,是一個(gè)典型的分布式在線實(shí)時(shí)隨機(jī)讀寫架構(gòu)。極強(qiáng)的水平伸縮性,支持?jǐn)?shù)十億的行和數(shù)百萬(wàn)的列,能夠?qū)W(wǎng)絡(luò)爬蟲提交的數(shù)據(jù)進(jìn)行實(shí)時(shí)寫入,并能配合搜索引擎,根據(jù)搜索結(jié)果實(shí)時(shí)獲取數(shù)據(jù)。

 

網(wǎng) 絡(luò)爬蟲、分布式數(shù)據(jù)庫(kù)、搜索引擎均運(yùn)行在普通商業(yè)硬件構(gòu)成的集群上。集群采用分布式架構(gòu),能擴(kuò)展到成千上萬(wàn)臺(tái)機(jī)器,具有容錯(cuò)機(jī)制,部分機(jī)器節(jié)點(diǎn)發(fā)生故障不 會(huì)造成數(shù)據(jù)丟失也不會(huì)導(dǎo)致計(jì)算任務(wù)失敗。不但高可用,當(dāng)節(jié)點(diǎn)發(fā)生故障時(shí)能迅速進(jìn)行故障轉(zhuǎn)移,而且高伸縮,只需要簡(jiǎn)單地增加機(jī)器就能水平線性伸縮、提升數(shù)據(jù) 存儲(chǔ)容量和計(jì)算速度。

 

網(wǎng)絡(luò)爬蟲、分布式數(shù)據(jù)庫(kù)、搜索引擎之間的關(guān)系:

 

1、網(wǎng)絡(luò)爬蟲將抓取到的HTML頁(yè)面解析完成之后,把解析出的數(shù)據(jù)加入緩沖區(qū)隊(duì)列,由其他兩個(gè)線程負(fù)責(zé)處理數(shù)據(jù),一個(gè)線程負(fù)責(zé)將數(shù)據(jù)保存到分布式數(shù)據(jù)庫(kù),一個(gè)線程負(fù)責(zé)將數(shù)據(jù)提交到搜索引擎進(jìn)行索引。

 

2、搜索引擎處理用戶的搜索條件,并將搜索結(jié)果返回給用戶,如果用戶查看網(wǎng)頁(yè)快照,則從分布式數(shù)據(jù)庫(kù)中獲取網(wǎng)頁(yè)的原始內(nèi)容。

 

整體架構(gòu)如下圖所示:

 


 

爬蟲集群、分布式數(shù)據(jù)庫(kù)集群、搜索引擎集群在物理部署上,可以部署到同一個(gè)硬件集群上,也可以分開部署,形成1-3個(gè)硬件集群。

 

網(wǎng)絡(luò)爬蟲集群有一個(gè)專門的網(wǎng)絡(luò)爬蟲配置管理系統(tǒng)來負(fù)責(zé)爬蟲的配置和管理,如下圖所示:

 

 

搜 索引擎通過分片(shard)和副本(replica)實(shí)現(xiàn)了高性能、高伸縮和高可用。分片技術(shù)為大規(guī)模并行索引和搜索提供了支持,極大地提高了索引和搜 索的性能,極大地提高了水平擴(kuò)展能力;副本技術(shù)為數(shù)據(jù)提供冗余,部分機(jī)器故障不影響系統(tǒng)的正常使用,保證了系統(tǒng)的持續(xù)高可用。

 

有2個(gè)分片和3份副本的索引結(jié)構(gòu)如下所示:

 

 

 

 

一個(gè)完整的索引被切分為0和1兩個(gè)獨(dú)立部分,每一部分都有2個(gè)副本,即下面的灰色部分。

 

在 生產(chǎn)環(huán)境中,隨著數(shù)據(jù)規(guī)模的增大,只需簡(jiǎn)單地增加硬件機(jī)器節(jié)點(diǎn)即可,搜索引擎會(huì)自動(dòng)地調(diào)整分片數(shù)以適應(yīng)硬件的增加,當(dāng)部分節(jié)點(diǎn)退役的時(shí)候,搜索引擎也會(huì)自 動(dòng)調(diào)整分片數(shù)以適應(yīng)硬件的減少,同時(shí)可以根據(jù)硬件的可靠性水平及存儲(chǔ)容量的變化隨時(shí)更改副本數(shù),這一切都是動(dòng)態(tài)的,不需要重啟集群,這也是高可用的重要保 障。

 

 


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多