成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分布式搜索系統(tǒng)的設計

系統(tǒng)
想象一下,如果YouTube沒有提供搜索欄,我們?nèi)绾卧跀?shù)百萬個視頻中找到特定的視頻,這些視頻多年來都已上傳到YouTube?用戶僅通過滾動瀏覽很難找到他們想要的內(nèi)容。

一、介紹

如今,我們幾乎在每個網(wǎng)站上都看到一個搜索欄。搜索欄使我們能夠快速找到我們需要的內(nèi)容。

讓我們舉個例子。想象一下,如果YouTube沒有提供搜索欄,我們?nèi)绾卧跀?shù)百萬個視頻中找到特定的視頻,這些視頻多年來都已上傳到YouTube?用戶僅通過滾動瀏覽很難找到他們想要的內(nèi)容。

在每個搜索欄背后,都有一個搜索系統(tǒng)。

二、需求

  • 可用性:系統(tǒng)應對用戶高度可用。
  • 可擴展性:系統(tǒng)應能夠隨著數(shù)據(jù)量的增加而擴展。換句話說,它應能夠索引大量數(shù)據(jù)。
  • 快速搜索大數(shù)據(jù):無論用戶搜索多少內(nèi)容,他們都應該能夠快速獲取結果。

三、核心概念

倒排索引

  • 索引 — 是組織和操作數(shù)據(jù)的過程,旨在促進快速和準確的信息檢索。
  • 倒排索引 — 是一種類似于哈希映射的數(shù)據(jù)結構,它使用文檔-詞術矩陣。它不是將完整文檔存儲,而是將文檔拆分為單個詞語。然后,文檔-詞術矩陣識別唯一的詞語,并丟棄頻繁出現(xiàn)的詞語,如“to”、“they”、“the”、“is”等等。

圖1.0:倒排索引

“映射”列中的每個條目都包括三個列表:

  • 詞語出現(xiàn)的文檔列表。
  • 統(tǒng)計詞語在每個文檔中出現(xiàn)的頻率的列表。
  • 指出詞語在每個文檔中的位置的二維列表。一個詞語可以在同一文檔中出現(xiàn)多次,因此使用二維列表。

對于提取的每個詞語,我們要么在倒排索引中添加新行,要么在該詞語已經(jīng)在倒排索引中有條目的情況下更新現(xiàn)有條目。同樣,在刪除文檔時,我們需要處理,找到已刪除文檔詞匯在倒排索引中的條目,然后相應地更新倒排索引。

四、設計

在添加文檔或運行搜索查詢時,需要將倒排索引加載到主內(nèi)存中。為了效率,必須將倒排索引的大部分內(nèi)容適應于機器的RAM中。

這意味著我們必須將大量數(shù)據(jù)加載到RAM中。不是增加單臺機器的資源來索引十億頁,而是要轉(zhuǎn)向分布式系統(tǒng),利用并行化的力量。

圖2.0:分布式搜索系統(tǒng)的高級設計

  • 索引器從分布式存儲中獲取文檔,并使用MapReduce進行索引,MapReduce運行在分布式的普通機器集群上。索引器使用分布式數(shù)據(jù)處理系統(tǒng)(例如MapReduce)進行并行和分布式索引構建。構建的索引表存儲在分布式存儲中。
  • 使用分布式存儲來存儲文檔和索引。
  • 用戶在搜索欄中輸入包含多個詞語的搜索字符串。
  • 搜索器解析搜索字符串,從存儲在分布式存儲中的索引中搜索映射,并將最匹配的結果返回給用戶。

數(shù)據(jù)分區(qū)

為了實現(xiàn)成本效益,我們在索引中使用了眾多小節(jié)點。這個過程要求我們對輸入數(shù)據(jù)(文檔)進行分區(qū)或拆分。

圖3.0:在多個普通機器集群中以并行方式進行分布式索引和搜索

索引:

  • 集群管理器將輸入文檔集分成N個分區(qū),其中N等于上圖中的2。每個分區(qū)的大小由集群管理器決定,考慮到數(shù)據(jù)的大小、計算、內(nèi)存限制和集群中的節(jié)點數(shù)量。由于各種原因,可能不是所有節(jié)點都可用。集群管理器通過定期心跳監(jiān)視每個節(jié)點的健康狀況。要將文檔分配給N個分區(qū)之一,可以使用哈希函數(shù)。
  • 分區(qū)后,集群管理器在集群中的N個節(jié)點上同時運行所有N個分區(qū)的索引算法。每個索引過程都會生成一個小型的倒排索引,存儲在節(jié)點的本地存儲中。這樣,我們生成了N個小型倒排索引,而不是一個大的倒排索引。

搜索:

  • 在搜索階段,當用戶查詢進來時,我們在存儲在節(jié)點本地存儲中的每個小型倒排索引上運行并行搜索,生成N個查詢。
  • 每個小型倒排索引的搜索結果都是與查詢詞語匹配的映射列表(我們假設用戶查詢是單個詞語/術語)。合并器聚合這些映射列表。
  • 在聚合映射列表后,合并器根據(jù)每個文檔中詞語的頻率對文檔列表進行排序。
  • 排序后的文檔列表以升序順序返回給用戶。

復制

我們?yōu)樯煞峙浞謪^(qū)的索引節(jié)點創(chuàng)建副本。

通常,三個副本足夠。三個副本意味著三個節(jié)點托管相同的分區(qū)并生成索引。三個節(jié)點中的一個成為主節(jié)點,而其他兩個是副本。同一分區(qū)將轉(zhuǎn)發(fā)到所有三個副本。我們假設每個副本都會獨立計算索引,這會導致資源的低效使用。與在副本上重新計算索引不同,我們只在主節(jié)點上計算倒排索引。接下來,我們將倒排索引(二進制文件)傳輸?shù)礁北尽_@種方法的主要好處是避免了在副本上使用重復的CPU和內(nèi)存來進行索引。

 

圖4.0:由索引節(jié)點生成的索引存儲在分布式存儲中,參與搜索的節(jié)點從分布式存儲中讀取索引以為用戶的查詢生成結果

索引和搜索之間有很強的分離,而沒有索引延遲的負面影響。由于這種分離,索引不會影響搜索可擴展性,反之亦然。此外,與在副本上重新計算索引不同,我們只需復制索引文件。

在硬件故障的情況下,會添加新的搜索器或索引器機器,并從分布式存儲中檢索數(shù)據(jù)的副本。

五、評估

可用性

數(shù)據(jù)在分布式存儲中跨多個區(qū)域進行復制,使索引和搜索的跨區(qū)域部署更加容易。因此,如果一個地方發(fā)生故障,我們可以在另一個集群中處理請求。

索引是離線執(zhí)行的,不在用戶的關鍵路徑上。我們不需要同步復制索引操作。無需在將新索引復制到響應搜索查詢之前等待。這使得搜索對用戶可用。

可擴展性

分區(qū)是搜索系統(tǒng)擴展的重要組成部分。當增加分區(qū)的數(shù)量并向索引和搜索集群添加更多節(jié)點時,可以在數(shù)據(jù)索引和查詢方面實現(xiàn)擴展。

索引和搜索過程之間的強分離有助于索引和搜索獨立和動態(tài)地擴展。

大數(shù)據(jù)快速搜索

我們利用了多個節(jié)點,每個節(jié)點在較小的倒排索引上并行執(zhí)行搜索查詢。然后,將每個搜索節(jié)點的結果合并并返回給用戶。

責任編輯:趙寧寧 來源: 小技術君
相關推薦

2022-04-07 17:13:09

緩存算法服務端

2019-09-05 09:02:45

消息系統(tǒng)緩存高可用

2023-05-12 08:23:03

分布式系統(tǒng)網(wǎng)絡

2015-05-26 11:18:06

分布式系統(tǒng)可擴展性

2022-04-14 10:24:27

分布式系統(tǒng)性能

2023-02-11 00:04:17

分布式系統(tǒng)安全

2017-12-12 14:51:15

分布式緩存設計

2013-01-07 10:29:31

大數(shù)據(jù)

2023-05-29 14:07:00

Zuul網(wǎng)關系統(tǒng)

2022-08-15 14:56:30

搜索引擎分布式

2023-11-07 12:00:05

分布式系統(tǒng)數(shù)據(jù)訪問

2017-05-22 09:58:01

虛擬機虛擬化分布式

2015-11-10 17:45:00

分布式系統(tǒng)設計開源模塊

2017-10-27 08:40:44

分布式存儲剪枝系統(tǒng)

2023-10-26 18:10:43

分布式并行技術系統(tǒng)

2023-05-05 06:13:51

分布式多級緩存系統(tǒng)

2017-08-30 16:47:49

Kafka設計原理

2019-07-12 09:14:07

分布式系統(tǒng)負載均衡

2022-04-08 07:22:15

分布式計數(shù)器系統(tǒng)設計

2021-06-11 17:19:06

分布式系統(tǒng)開發(fā)Web
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天啪| 在线播放国产一区二区三区 | 三级免费| 国产免费一区二区三区免费视频 | 你懂的免费在线 | 日韩欧美一区二区在线播放 | 天堂网中文 | 免费在线观看成年人视频 | 99热播精品| 亚洲精品久久久久久久久久久 | 亚洲国产精品视频一区 | 在线观看亚洲精品 | 欧美精品在线免费观看 | k8久久久一区二区三区 | 国产高清av免费观看 | 国产999精品久久久久久绿帽 | 欧美在线一区二区三区 | 日韩久久久久久 | 成人久久久 | 中文字幕 在线观看 | 91免费视频观看 | 欧美亚洲在线 | 成人性生交大片免费看中文带字幕 | 精品国产一区二区三区免费 | 国产精品美女久久久久aⅴ国产馆 | 亚洲国产欧美精品 | 一级片免费视频 | 在线观看国产精品一区二区 | 日韩欧美二区 | 91精品国产91久久久久久丝袜 | 在线播放中文 | 久草久草久草 | 国产一区二区在线观看视频 | 成人在线免费观看视频 | 成人国产精品入口免费视频 | 国产黄色在线观看 | 国产精品国产 | 国产精品久久久久久吹潮 | 国产区视频在线观看 | 特级黄色毛片 | 欧洲毛片|