solr基於Zookeeper協調組件搭建的分佈式搜索引擎,具備zookeeper的高可用以及集羣的可伸縮性的特色。node
Collection:對應standby模式Solr Core算法
Shard(分片): 對應Collection邏輯劃分的Core,能夠理解爲多個Shard組成一個完整意義上的Solr Core,若是是單機模式下:1 Solr Core = 1 Shard = 1 Core = 1 replica,Shard對於用戶接口是不可見的,主要經過上一層的Collection提供一個Façade接口數據庫
Core: Solr Core一個包含索引和配置文件的運行實例,一個Core對應一個Replica實際提供索引服務,SolrCloud提供冗餘機制,多個Replica提供的索引數據服務是相同的服務器
Replica: Shard實際物理存儲,可提供相似HDFS的備份機制保證冗餘特性負載均衡
一個Solr Core,分片2個Shard,shard提供1個leader replica和2個slave replica,實現冗餘,Zookeeper負責挑選出leader replica,客戶端進行索引的時SolrCloud會請求傳遞給對應的Shard的leader replica,leader replica再分發請求到shard到slave replica進行處理分佈式
Solr Cloud特色:測試
SolrCloud並無Master節點去分配集羣節點、shard和relica而是經過上傳到Zookeeper的配置信息統一管理,客戶端查詢和更新指令能夠被髮送到集羣的任意一個節點,Solr可根據註冊在Zookeeper內置數據庫的信息去決定處理客戶端請求服務器的具體節點搜索引擎
Solr自帶測試案例,會自動建立一個Collection:gettingstarted 和 兩個Solr Core: gettingstarted_shard1以及gettingstarted_shard2,一個Core做爲備份,數據自動同步指針
參數分析:--noprompt, 無需提示直接按照默認配置建立實例rest
SolrCloud基礎界面:
查詢SolrCloud節點的運行狀態:solr status
查詢Collection的詳細信息:solr healthcheck -c gettingstarted
關閉SolrCloud節點:solr stop –all
刪除solr collection :solr delete -c gettingstarted
SolrCloud默認配置文件: data_driven_schema_configs
SolrCloud啓動:solr start –c –s solr –p 8983 –z localhost:2181 –noprompt
Solr默認服務器目錄:server
重啓SolrCloud節點:solr restart -c -p 8983 -s example/cloud/node1/solr
重啓node節點:solr restart -c -p 7574 -z localhost:9983 -s example/cloud/node/solr
SolrCloud建立Collection: solr create –c name [-shards #] [-replicationFactor #]
測試案例:solr create -c solrCloud -shards 1 -replicationFactor 2
Solr create –c myCollection –d data_driven_schema_configs –s 3 –rf 2 –n myconf
SolrCloud內置Zookeeper訪問:
zkCli.cmd -timeout 5000 -r -server localhost:9983
分析:solr自帶的zookeeper隨着solrCloud啓動而啓動,並保存整個solr集羣的全部數據,並通過選舉算法進行統一調度和負載均衡
建立Solr Cluster節點:Node
$ mkdir -p example/cloud/node/solr $ cp server/solr/solr.xml example/cloud/node/solr $ bin/solr start -cloud -s example/cloud/node/solr -p 8987 -z localhost:9983
將新建立的Solr Core放在SolrHome的目錄下,但SolrCloud沒法啓動而且報錯,這種狀況是由於SolrCloud啓動後,Zookeeper會對SolrCloud集羣的數據與實際的物理數據進行校驗,若是發現物理節點未在Zookeeper中配置則出錯
將物理節點數據上傳至Zookeeper集羣,保持物理節點數據與Zookeeper維護的數據進行同步
命令:將新建立的Solr Core配置上傳Zookeeper
zkCli -zkhost localhost:2181 -cmd upconfig -collection computer -confdir server/solr/configsets/sample\_techproducts\_configs/conf -confname computerConf
參數說明: