SolrCloud是什么
參考 solrCloud官網介紹 http://lucene.apache.org/solr/guide/6_6/solrcloud.html
Apache Solr 可以設置solr集群,並且有容錯性和高可用性能力,這被稱為SolrCloud,它的功能是提供分布式索引和搜索,支持以下功能:
-
集中式的中央配置
-
自動負載平衡和故障切換
-
ZooKeeper集成,用於集群協調和配置。
SolrCloud是靈活的分布式搜索和索引,沒有主節點分配節點,分片和副本。相反,Solr使用ZooKeeper來管理這些位置,具體取決於配置文件和模式。查詢和更新可以發送到任何服務器。Solr將使用ZooKeeper數據庫中的信息來確定哪些服務器需要處理請求。
SolrCloud結構圖
因為集中配置、協調,所以需要zookeeper。
zookeeper的集群安裝
安裝3個zk服務器做集群 localhost:2181,localhost:2182,localhost:2183。
安裝zk,參考 http://www.cnblogs.com/yangzhenlong/p/8270835.html
安裝好后啟動3個zk
solrCloud安裝
下載solr http://mirrors.shu.edu.cn/apache/lucene/solr/
下載后解壓,命名為solr-1,進入 \solr-1\bin 目錄
需要做3個操作
1.配置zookeeper服務
修改solr.in.cmd
REM set ZK_HOST= 替換為(這里是zookeeper服務地址:端口,中間用逗號隔開)
set ZK_HOST=localhost:2181,localhost:2182,localhost:2183
REM set ZK_CLIENT_TIMEOUT=15000替換為
set ZK_CLIENT_TIMEOUT=15000
2.配置solr端口
修改solr.cmd,編輯文件,搜索 SOLR_PORT=8983
將端口改為8981
編輯好以后,將solr-1文件夾復制3分,分別命名為 solr-2,solr-3,solr-4
然后分別修改對應的solr.cmd文件,設置端口為 8982,8983,,8984
3.上傳solr的core配置到zookeeper
因為需要讓zk統一治理solr,所以需要讓zk管理solr的配置信息。
進入\solr-1\server\scripts\cloud-scripts 目錄,看到有zk的客戶端指令文件
現在需要將\solr-1\server\solr\configsets\basic_configs\conf 里的所有配置都上傳到zk服務上,執行命令:
zkcli.bat -zkhost zk1:port,zk2:port... -cmd upconfig -confdir solr的conf目錄 -confname solrconf
例如:
zkcli.bat -zkhost localhost:2181,localhost:2182,localhost:2183 -cmd upconfig -confdir D:\develop-env\solr-cluster\solr-1\server\solr\configsets\basic_configs\conf -confname solrconf
上傳以后,查看是否成功,用zk客戶端連接到任意一個zk服務器,查看 根路徑
zkCli.cmd -server localhost:2181
ls /
ls /configs
如果有我們前面命名的 solrconf,說明上傳成功
啟動solr
設置好以后,用cmd先進入solr-1的bin目錄,執行命令 ,然后分別進入 solr-2/bin solr-3/bin solr-4/bin,同樣執行下面命令:
solr start
然后訪問地址 http://localhost:8981/ (或8982 8983 8984)
創建solr core
新建一個core,在config set選項中,能看到上傳的solr配置
選擇solrconf配置,numShards 和replicationFact 都填4,添加添加按鈕,會提示錯誤:
最后一句說需要 4*4=16個分片,超出了允許的值。規則是 numShards數量 * replicationFact數量 <= solrCloud中solr服務的數量
numShards 和replicationFact 分別填 1 1 創建 core1
numShards 和replicationFact 分別填 4 1 創建 core1
numShards 和replicationFact 分別填 1 4 創建 core1
numShards 和replicationFact 分別填 2 2 創建 core1
然后查看 Cloud
黑色選中的是zk選舉出來的leader
訪問其他solr,效果一樣