Nutla 全文檢索千億資料檢索框架

2021-06-10 17:59:14 字數 1953 閱讀 5019

全文檢索千億資料檢索框架-nutla

核心結構: lucene + hadoop 分布式搜尋執行框架

概述

不管程式效能有多高,機器處理能力有多強,都會有其極限。能夠快速方便的橫向與縱向擴充套件是nut設計最重要的原則,以此原則形成以分布式平行計算為核心的架構設計。以分布式平行計算為核心的架構設計是nut區別於solr、katta的地方。
nut是乙個lucene+hadoop分布式平行計算搜尋框架,能對千g以上索引提供7*24小時搜尋服務。在伺服器資源足夠的情況下能達到每秒處理100萬次的搜尋請求。 nut開發環境:jdk1.6.0.23+lucene3.0.3+eclipse3.6.1+hadoop0.20.2+zookeeper3.3.2+hbase0.20.6+memcached+mongodb+linux

特新

a、熱插拔 b、可擴充套件 c、高負載 d、易使用,與現有專案無縫整合  e、支援排序 f、7*24服務 g、失敗轉移
搜尋流程 nut由index、search、client、cache和db五部分構成。(cache實現了對memcached的支援,db實現了對hbase,mongodb的支援) client處理使用者請求和對搜尋結果排序。search對請求進行搜尋,search上只放索引,資料儲存在db中,nut將索引和儲存分離。cache快取的是搜尋條件和結果文件id。db儲存著資料,client根據搜尋排序結果,取出當前頁中的文件id從db上讀取資料。 使用者發起搜尋請求給由nut client構成的集群,由某個nut client根據搜尋條件查詢cache伺服器是否有該快取,如果有快取根據快取的文件id直接從db讀取資料,如果沒有快取將隨機選擇一組搜尋伺服器組(search group i),將查詢條件同時發給該組搜尋伺服器組裡的n臺搜尋伺服器,搜尋伺服器將搜尋結果返回給nut client由其排序,取出當前頁文件id,將搜尋條件和當前文件id快取,同時從db讀取資料。

zookeeper伺服器狀態管理策略 在架構設計上通過使用多組搜尋伺服器可以支援每秒處理100萬個搜尋請求。 每組搜尋伺服器能處理的搜尋請求數在1萬—1萬5千之間。如果使用100組搜尋伺服器,理論上每秒可處理100萬個搜尋請求。

假如每組搜尋伺服器有100份索引放在100臺正在執行中搜尋伺服器(run)上,那麼將索引按照如下的方式放在備用中搜尋伺服器(bak)上:index 1,index 2,index 3,index 4,index 5,index 6,index 7,index 8,index 9,index 10放在b 1 上,index 6,index 7,index 8,index 9,index 10,index 11,index 12,index 13,index 14,index 15放在b 2上。。。。。。index 96,index 97,index 98,index 99,index 100,index 5,index 4,index 3,index 2,index 1放在最後一台備用搜尋伺服器上。那麼每份索引會存在3臺機器中(1份正在執行中,2份備份中)。 儘管這樣設計每份索引會存在3臺機器中,仍然不是絕對安全的。假如執行中的index 1,index 2,index 3同時宕機的話,那麼就會有乙份索引搜尋服務無法正確啟用。這樣設計,作者認為是在安全性和機器資源兩者之間乙個比較適合的方案。

備用中的搜尋伺服器會定時檢查執行中搜尋伺服器的狀態。一旦發現與自己索引對應的伺服器宕機就會向lock申請分布式鎖,得到分布式鎖的伺服器就將自己加入到執行中搜尋伺服器組,同時從備用搜尋伺服器組中刪除自己,並停止執行中搜尋伺服器檢查服務。

為能夠更快速的得到搜尋結果,設計上將搜尋伺服器分優先等級。通常是將最新的資料放在一台或幾台記憶體搜尋伺服器上。通常情況下前幾頁資料能在這幾台搜尋伺服器裡搜尋到。如果在這幾台搜尋伺服器上沒有資料時再向其他舊資料搜尋伺服器上搜尋。 優先搜尋等級的邏輯是這樣的:9最大為搜尋全部伺服器並且9不能作為level標識。當搜尋等級level為1,搜尋優先順序為1的伺服器,當level為2時搜尋優先順序為1和2的伺服器,依此類推。

****:

lucene + hadoop 分布式搜尋引擎——nutla

Nutla 全文檢索千億資料檢索框架

全文檢索千億資料檢索框架 nutla 參考資料 核心結構 lucene hadoop 分布式搜尋執行框架 概述不管程式效能有多高,機器處理能力有多強,都會有其極限。能夠快速方便的橫向與縱向擴充套件是nut設計最重要的原則,以此原則形成以分布式平行計算為核心的架構設計。以分布式平行計算為核心的架構設計...

Data Retrieval 資料檢索

index 索引 定義 分類 1 結構化資料 固定格式 有限長度 應用 資料庫 元資料 2 非結構化資料 非定格式 非限長度 應用 磁碟檔案 查詢方式 1 結構化查詢 資料庫搜尋 2 非結構化查詢 a 順序掃瞄 b 全文檢索定義 根據使用者需求,從資料庫提取資料,生成資料表。資料表 可放回資料庫,也...

基本資料檢索

2016.11.28 二 基本資料檢索 select from table select 和 from 號是特殊符號,它表示所有的列,這句話的意思就是從 table 中查詢所有的列。在mysql和 oracle 中要求每句話的末尾要加乙個分號 但在 sqlserver 中不適用。2.1 查詢指定列 ...