ZooKeeper 檔案管理

使用 SolrCloud 時,您的設定檔會保留在 ZooKeeper 中。

這些檔案會在下列任何一種情況下上傳

  • 當您使用 bin/solr 指令碼啟動 SolrCloud 範例時。

  • 當您使用 bin/solr 指令碼建立集合時。

  • 明確將設定集上傳到 ZooKeeper。

啟動引導

當您第一次使用 bin/solr start -e cloud 嘗試 SolrCloud 時,相關的 configset 會自動上傳到 ZooKeeper,並與新建立的集合連結。

以下命令將使用預設集合名稱 (gettingstarted) 和預設 configset (_default) 啟動 SolrCloud,並將其上傳並連結。

bin/solr start -e cloud --no-prompt

您也可以在使用 bin/solr 指令碼建立集合時,使用 -d 選項明確上傳設定目錄,例如

bin/solr create -c mycollection -d _default

建立命令會將 _default 設定目錄的副本上傳到 ZooKeeper,路徑為 /configs/mycollection。請參閱 Solr 控制腳本參考,以取得有關建立集合的建立命令的更多詳細資訊。

將設定目錄上傳到 ZooKeeper 後,您可以使用 Solr 控制腳本來更新它們。

最好將這些檔案保留在版本控制之下。

使用 bin/solr 或 SolrJ 上傳設定檔

在生產環境中,也可以使用 Solr 的 Solr 控制腳本SolrJ,將 設定集獨立於集合建立上傳到 ZooKeeper。

可以使用以下命令使用 bin/solr 指令碼上傳新的設定集。

bin/solr zk upconfig -n <name for configset> -d <path to directory with configset>

以下程式碼示範如何使用 SolrJ 實現此目的

getConfigSetService()
    .uploadConfig("nameForConfigset", Paths.get(localConfigSetDirectory), false);

強烈建議將設定保留在版本控制系統(Git、SVN 或類似系統)中。

管理您的 SolrCloud 設定檔

若要更新或變更您的 SolrCloud 設定檔

  1. 使用原始碼控制結帳程序,從 ZooKeeper 下載最新的設定檔。

  2. 進行變更。

  3. 將您變更的檔案提交到原始碼控制。

  4. 將變更推回 ZooKeeper。

  5. 重新載入集合,使變更生效。

首次啟動叢集前準備 ZooKeeper

如果您將與其他應用程式共用同一個 ZooKeeper 實例,您應該在 ZooKeeper 中使用 chroot。請參閱 ZooKeeper chroot 以取得操作說明。

有一些組態檔案包含叢集範圍的組態設定。由於其中一些對於叢集的正常運作至關重要,您可能需要在首次啟動 Solr 叢集之前,將這些檔案上傳到 ZooKeeper。這些組態檔案的範例(並非詳盡)有 security.jsonclusterprops.json

例如,如果您想啟用身份驗證,可以使用 bin/solr 工具將 security.json 檔案推送到 ZooKeeper (Unix 範例)

bin/solr zk cp file:local/file/path/to/security.json zk:/security.json -z localhost:2181
如果您已在 solr.in.sh/solr.in.cmd 中定義 ZK_HOST (請參閱 xref:zookeeper-ensemble.adoc#updating-solr-include-files, 更新 Solr 包含檔案>>),您可以從上述命令中省略 -z <zk host string>