SolrCloud入門

2018-12-25 14:35 更新

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

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

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

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

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

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

SolrCloud示例

交互式啟動

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

bin/solr -e cloud

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

該腳本首先詢問您要在本地群集中運行多少個Solr節(jié)點,默認值為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é)點,但我們建議在啟動時使用默認值2。這些節(jié)點將分別存在于一臺機器上,但將使用不同的端口來模擬不同服務(wù)器上的操作。

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

 Please enter the port for node1 [8983]

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

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

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

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

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

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

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

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

最后,腳本會提示您輸入您的集合的配置目錄名稱。您可以選擇_default或sample_techproducts_configs。配置目錄是從server/solr/configsets/如果你愿意,您可以預(yù)先審查。_default 配置在您仍在為文檔設(shè)計架構(gòu)時非常有用,需要您嘗試使用Solr,因為它具有無架構(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)建一個新的集合。要驗證這一點,您可以運行“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開始

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

bin/solr -e cloud -noprompt

重新啟動節(jié)點

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

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

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

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

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

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

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

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é)點添加到以“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é)點,并將 solr 主頁設(shè)置為 example/cloud/node3/solr。新節(jié)點會將其日志文件寫入 example/cloud/node3/logs。

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號