SolrCloud入門

2018-12-25 14:35 更新

SolrCloud旨在提供高度可用的容錯環(huán)境,用于在多個服務(wù)器之間分發(fā)索引內(nèi)容和查詢請求。

這是一個將數(shù)據(jù)組織成可以托管在多臺機(jī)器上的多個碎片的系統(tǒng),其中副本為可擴(kuò)展性和容錯性提供了冗余,還有一個ZooKeeper服務(wù)器,用于幫助管理整個結(jié)構(gòu),以便索引和搜索請求可以正確地路由。

本節(jié)詳細(xì)介紹了SolrCloud及其內(nèi)部工作原理,但是在深入研究之前,最好先了解一下您要完成的任務(wù)。

這個頁面提供了一個在SolrCloud模式下啟動Solr的簡單教程,所以您可以開始了解在索引和提供查詢期間碎片如何相互影響。為此,我們將使用在單臺機(jī)器上配置SolrCloud的簡單示例,這顯然不是真正的生產(chǎn)環(huán)境,其中包括幾臺服務(wù)器或虛擬機(jī)。在實(shí)際的生產(chǎn)環(huán)境中,您還將使用真正的機(jī)器名稱而不是我們在此使用的“l(fā)ocalhost”。

在本節(jié)中,您將學(xué)習(xí)如何使用啟動腳本和特定的配置集來啟動SolrCloud集群。

本教程假定您已經(jīng)熟悉了使用 Solr 的基本知識。如果您需要進(jìn)行復(fù)習(xí),請參閱入門部分以了解Solr概念。如果您將文檔作為該練習(xí)的一部分進(jìn)行加載,則應(yīng)該從這些SolrCloud教程的全新Solr安裝開始。

SolrCloud示例

交互式啟動

該bin/solr腳本使您可以輕松開始使用SolrCloud,因?yàn)樗龑?dǎo)您完成在云模式下啟動Solr節(jié)點(diǎn)并添加集合的過程。要開始,只需:

bin/solr -e cloud

這將啟動一個交互式會話,引導(dǎo)您完成設(shè)置嵌入式ZooKeeper的簡單SolrCloud集群的步驟。

該腳本首先詢問您要在本地群集中運(yùn)行多少個Solr節(jié)點(diǎn),默認(rèn)值為2。

Welcome to the SolrCloud example!

This interactive session will help you launch a SolrCloud cluster on your local workstation.
To begin, how many Solr nodes would you like to run in your local cluster? (specify 1-4 nodes) [2]

該腳本支持最多啟動4個節(jié)點(diǎn),但我們建議在啟動時使用默認(rèn)值2。這些節(jié)點(diǎn)將分別存在于一臺機(jī)器上,但將使用不同的端口來模擬不同服務(wù)器上的操作。

接下來,該腳本會提示您將端口綁定到每個Solr節(jié)點(diǎn),例如:

 Please enter the port for node1 [8983]

為每個節(jié)點(diǎn)選擇任何可用的端口;第一個節(jié)點(diǎn)的默認(rèn)值是第二個節(jié)點(diǎn)的8983和7574。該腳本將按順序啟動每個節(jié)點(diǎn),并向您顯示它用于啟動服務(wù)器的命令,例如:

solr start -cloud -s example/cloud/node1/solr -p 8983

第一個節(jié)點(diǎn)也將啟動一個綁定到端口9983的嵌入式ZooKeeper服務(wù)器。第一個節(jié)點(diǎn)的Solr主目錄在example/cloud/node1/solr中,如-s選項(xiàng)所示。

啟動集群中的所有節(jié)點(diǎn)后,腳本會提示您輸入要創(chuàng)建的集合的名稱:

 Please provide a name for your new collection: [gettingstarted]

建議的默認(rèn)值是“gettingstarted”,但您可能希望選擇一個更適合您的特定搜索應(yīng)用程序的名稱。

接下來,腳本會提示您分配集合的碎片數(shù)量。分片進(jìn)行更詳細(xì)的覆蓋以后,所以如果您不確定,我們建議使用2默認(rèn),以便您可以看到集合是如何在 SolrCloud 群集中的多個節(jié)點(diǎn)之間分布的。

接下來,腳本會提示您為每個分片創(chuàng)建副本的數(shù)量。 本指南稍后將詳細(xì)介紹復(fù)制,所以如果您不確定,請使用默認(rèn)值2,以便您可以看到如何在SolrCloud中處理復(fù)制。

最后,腳本會提示您輸入您的集合的配置目錄名稱。您可以選擇_default或sample_techproducts_configs。配置目錄是從server/solr/configsets/如果你愿意,您可以預(yù)先審查。_default 配置在您仍在為文檔設(shè)計(jì)架構(gòu)時非常有用,需要您嘗試使用Solr,因?yàn)樗哂袩o架構(gòu)功能的一些flexiblity配置是非常有用的。但是,創(chuàng)建集合之后,可以禁用無模式功能,以便鎖定模式(以便在執(zhí)行此操作后編入索引的文檔不會改變模式)或自行配置模式。這可以如下完成(假設(shè)你的集合名稱是 mycollection):

curl http://host:8983/solr/mycollection/config -d '{"set-user-property": {"update.autoCreateFields":"false"}}'

此時,您應(yīng)該在本地SolrCloud群集中創(chuàng)建一個新的集合。要驗(yàn)證這一點(diǎn),您可以運(yùn)行“status”命令:

bin/solr status

如果在此過程中遇到任何錯誤,請檢查Solr的日志文件example/cloud/node1/logs和example/cloud/node2/logs。

您可以通過訪問Solr管理界面中的云面板來查看您的集群在集群中的部署方式:http://localhost:8983/solr/#/?cloud。Solr還提供了一種使用healthcheck命令為集合執(zhí)行基本診斷的方法:

bin/solr healthcheck -c gettingstarted

healthcheck命令收集有關(guān)集合中每個副本的基本信息,例如文檔數(shù)量,當(dāng)前狀態(tài)(活動,關(guān)閉等)和地址(副本在集群中的位置)。

現(xiàn)在可以使用Post工具將文檔添加到SolrCloud 。

要在SolrCloud模式下停止Solr,您可以使用bin/solr腳本并發(fā)出stop命令,如下所示:

bin/solr stop -all

從-noprompt開始

您也可以使用以下命令,以所有默認(rèn)值(而不是交互式會話)開始SolrCloud:

bin/solr -e cloud -noprompt

重新啟動節(jié)點(diǎn)

您可以使用bin/solr腳本重新啟動您的SolrCloud節(jié)點(diǎn)。例如,要重新啟動在端口8983(使用嵌入式ZooKeeper服務(wù)器)上運(yùn)行的node1,您應(yīng)該:

bin/solr restart -c -p 8983 -s example/cloud/node1/solr

要重新啟動端口7574上運(yùn)行的節(jié)點(diǎn)2,您可以執(zhí)行以下操作:

bin/solr restart -c -p 7574 -z localhost:9983 -s example/cloud/node2/solr

請注意,啟動node2時需要指定ZooKeeper地址(-z localhost:9983),以便可以將節(jié)點(diǎn)1連接到群集。

將節(jié)點(diǎn)添加到群集

將節(jié)點(diǎn)添加到現(xiàn)有集群有點(diǎn)高級,并且對Solr有了更多的了解。一旦使用啟動腳本啟動SolrCloud集群,您可以通過以下方式向其添加新節(jié)點(diǎn):

mkdir <solr.home for new solr node>
cp <existing solr.xml path> <new solr.home>
bin/solr start -cloud -s solr.home/solr -p <port num> -z <zk hosts string>

請注意,上述要求您創(chuàng)建一個Solr主目錄。您需要將 solr xml 復(fù)制到 solr_home ,或者保存在ZooKeeper中的/solr.xml。

將節(jié)點(diǎn)添加到以“bin / solr -e cloud”開頭的示例的示例(使用目錄結(jié)構(gòu)):

mkdir -p example/cloud/node3/solr
cp server/solr/solr.xml example/cloud/node3/solr
bin/solr start -cloud -s example/cloud/node3/solr -p 8987 -z localhost:9983

前面的命令將在端口8987上啟動另一個 solr 節(jié)點(diǎn),并將 solr 主頁設(shè)置為 example/cloud/node3/solr。新節(jié)點(diǎn)會將其日志文件寫入 example/cloud/node3/logs。

一旦您對 SolrCloud 示例的工作方式感到滿意,我們建議使用將 Solr 帶到生產(chǎn)中的過程,以便在生產(chǎn)中設(shè)置 SolrCloud 節(jié)點(diǎn)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號