solrcloud

非原創(chuàng)亚皂,記錄蜻底。

一.簡介
SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案碍庵。SolrCloud是Solr的基于Zookeeper一種部署方式了赌。Solr可以以多種方式部署巩那,例如單機方式吏夯,多機Master-Slaver方式。

二.特色功能
SolrCloud有幾個特色功能:
集中式的配置信息使用ZK進行集中配置

啟動時可以指定把Solr的相關配置文件上傳Zookeeper即横,多機器共用噪生。這些ZK中的配置不會再拿到本地緩存,Solr直接讀取ZK中的配置信息东囚。配置文件的變動跺嗽,所有機器都可以感知到。另外页藻,Solr的一些任務也是通過ZK作為媒介發(fā)布的桨嫁。目的是為了容錯。接收到任務惕橙,但在執(zhí)行任務時崩潰的機器瞧甩,在重啟后,或者集群選出候選者時弥鹦,可以再次執(zhí)行這個未完成的任務肚逸。
自動容錯

SolrCloud對索引分片爷辙,并對每個分片創(chuàng)建多個Replication。每個Replication都可以對外提供服務朦促。一個Replication掛掉不會影響索引服務膝晾。更強大的是,它還能自動的在其它機器上幫你把失敗機器上的索引Replication重建并投入使用务冕。

近實時搜索

立即推送式的replication(也支持慢推送)血当。可以在秒內檢索到新加入索引禀忆。

查詢時自動負載均衡

SolrCloud索引的多個Replication可以分布在多臺機器上臊旭,均衡查詢壓力。如果查詢壓力大箩退,可以通過擴展機器离熏,增加Replication來減緩。

自動分發(fā)的索引和索引分片

發(fā)送文檔到任何節(jié)點戴涝,它都會轉發(fā)到正確節(jié)點滋戳。
事務日志

事務日志確保更新無丟失,即使文檔沒有索引到磁盤啥刻。

其它值得一提的功能有:

索引存儲在HDFS上

索引的大小通常在G和幾十G奸鸯,上百G的很少,這樣的功能或許很難實用可帽。但是娄涩,如果你有上億數(shù)據(jù)來建索引的話,也是可以考慮一下的蘑拯。我覺得這個功能最大的好處或許就是和下面這個“通過MR批量創(chuàng)建索引”聯(lián)合實用钝满。

通過MR批量創(chuàng)建索引

有了這個功能兜粘,你還擔心創(chuàng)建索引慢嗎申窘?
強大的RESTful API通常你能想到的管理功能,都可以通過此API方式調用孔轴。這樣寫一些維護和管理腳本就方便多了剃法。
優(yōu)秀的管理界面主要信息一目了然;可以清晰的以圖形化方式看到SolrCloud的部署分布路鹰;當然還有不可或缺的Debug功能贷洲。

三.概念
Collection:在SolrCloud集群中邏輯意義上的完整的索引。它常常被劃分為一個或多個Shard晋柱,它們使用相同的Config Set优构。如果Shard數(shù)超過一個,它就是分布式索引雁竞,SolrCloud讓你通過Collection名稱引用它钦椭,而不需要關心分布式檢索時需要使用的和Shard相關參數(shù)拧额。

Config Set: Solr Core提供服務必須的一組配置文件。每個config set有一個名字彪腔。最小需要包括solrconfig.xml (SolrConfigXml)和schema.xml (SchemaXml)侥锦,除此之外,依據(jù)這兩個文件的配置內容德挣,可能還需要包含其它文件恭垦。它存儲在Zookeeper中。Config sets可以重新上傳或者使用upconfig命令更新格嗅,使用Solr的啟動參數(shù)bootstrap_confdir指定可以初始化或更新它番挺。

Core: 也就是Solr Core,一個Solr中包含一個或者多個Solr Core屯掖,每個Solr Core可以獨立提供索引和查詢功能建芙,每個Solr Core對應一個索引或者Collection的Shard,Solr Core的提出是為了增加管理靈活性和共用資源懂扼。在SolrCloud中有個不同點是它使用的配置是在Zookeeper中的禁荸,傳統(tǒng)的Solr core的配置文件是在磁盤上的配置目錄中。

Leader: 贏得選舉的Shard replicas阀湿。每個Shard有多個Replicas赶熟,這幾個Replicas需要選舉來確定一個Leader。選舉可以發(fā)生在任何時間陷嘴,但是通常他們僅在某個Solr實例發(fā)生故障時才會觸發(fā)映砖。當索引documents時,SolrCloud會傳遞它們到此Shard對應的leader灾挨,leader再分發(fā)它們到全部Shard的replicas邑退。

Replica: Shard的一個拷貝。每個Replica存在于Solr的一個Core中劳澄。一個命名為“test”的collection以numShards=1創(chuàng)建地技,并且指定replicationFactor設置為2,這會產生2個replicas秒拔,也就是對應會有2個Core莫矗,每個在不同的機器或者Solr實例。一個會被命名為test_shard1_replica1砂缩,另一個命名為test_shard1_replica2作谚。它們中的一個會被選舉為Leader。

Shard: Collection的邏輯分片庵芭。每個Shard被化成一個或者多個replicas妹懒,通過選舉確定哪個是Leader。
Zookeeper: Zookeeper提供分布式鎖功能双吆,對SolrCloud是必須的眨唬。它處理Leader選舉滔悉。Solr可以以內嵌的Zookeeper運行,但是建議用獨立的单绑,并且最好有3個以上的主機回官。

四.架構圖
索引(collection)的邏輯圖


Paste_Image.png

Solr和索引對照圖

Paste_Image.png

創(chuàng)建索引過程

Paste_Image.png

分布式查詢

Paste_Image.png

Shard Splitting

Paste_Image.png

五.其它
NRT 近實時搜索Solr的建索引數(shù)據(jù)是要在提交時寫入磁盤的,這是硬提交搂橙,確保即便是停電也不會丟失數(shù)據(jù)歉提;為了提供更實時的檢索能力,Solr設定了一種軟提交方式区转。軟提交(soft commit):僅把數(shù)據(jù)提交到內存苔巨,index可見,此時沒有寫入到磁盤索引文件中废离。
一個通常的用法是:每1-10分鐘自動觸發(fā)硬提交侄泽,每秒鐘自動觸發(fā)軟提交。
RealTime Get 實時獲取允許通過唯一鍵查找任何文檔的最新版本數(shù)據(jù)蜻韭,并且不需要重新打開searcher悼尾。這個主要用于把Solr作為NoSQL數(shù)據(jù)存儲服務,而不僅僅是搜索引擎肖方。Realtime Get當前依賴事務日志闺魏,默認是開啟的。另外俯画,即便是Soft Commit或者commitwithin析桥,get也能得到真實數(shù)據(jù)。 注:commitwithin是一種數(shù)據(jù)提交特性艰垂,不是立刻泡仗,而是要求在一定時間內提交數(shù)據(jù).

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市猜憎,隨后出現(xiàn)的幾起案子娩怎,更是在濱河造成了極大的恐慌,老刑警劉巖拉宗,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件峦树,死亡現(xiàn)場離奇詭異,居然都是意外死亡旦事,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門急灭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姐浮,“玉大人,你說我怎么就攤上這事葬馋÷衾穑” “怎么了肾扰?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛋逾。 經常有香客問我集晚,道長,這世上最難降的妖魔是什么区匣? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任偷拔,我火速辦了婚禮,結果婚禮上亏钩,老公的妹妹穿的比我還像新娘莲绰。我一直安慰自己,他們只是感情好姑丑,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布蛤签。 她就那樣靜靜地躺著,像睡著了一般栅哀。 火紅的嫁衣襯著肌膚如雪震肮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天留拾,我揣著相機與錄音钙蒙,去河邊找鬼。 笑死间驮,一個胖子當著我的面吹牛躬厌,可吹牛的內容都是我干的。 我是一名探鬼主播竞帽,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼扛施,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了屹篓?” 一聲冷哼從身側響起疙渣,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎堆巧,沒想到半個月后妄荔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡谍肤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年啦租,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荒揣。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡篷角,死狀恐怖,靈堂內的尸體忽然破棺而出系任,到底是詐尸還是另有隱情恳蹲,我是刑警寧澤虐块,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站嘉蕾,受9級特大地震影響贺奠,放射性物質發(fā)生泄漏。R本人自食惡果不足惜错忱,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一儡率、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧航背,春花似錦喉悴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至今魔,卻和暖如春勺像,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背错森。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工吟宦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涩维。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓殃姓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓦阐。 傳聞我的和親對象是個殘疾皇子蜗侈,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內容