ZooKeeper操作

2018-11-08 15:59 更新

bin/solr 腳本允許某些操作影響 ZooKeeper。這些操作僅適用于 SolrCloud 模式。這些操作可以作為子命令使用,每個(gè)子命令都有自己的一組選項(xiàng)。

bin/solr zk [sub-command] [options]
bin/solr zk -help
Tip:Solr 應(yīng)該已經(jīng)啟動(dòng)至少一次,然后發(fā)出這些命令來(lái)初始化 ZooKeeper 和 Solr 所期望的 znodes。一旦 ZooKeeper 被初始化,Solr 就不需要在任何節(jié)點(diǎn)上運(yùn)行來(lái)使用這些命令。

上傳配置集

使用 zk upconfig 命令可以將預(yù)先配置的組態(tài)集或自定義配置集上傳到 ZooKeeper。

ZK 上傳參數(shù)

以下所有的參數(shù)都是必需的。

-n <name>:

ZooKeeper 中配置集的名稱。這個(gè)命令會(huì)把配置集上傳給“配置” ZooKeeper 節(jié)點(diǎn),給它指定名字。

您可以通過(guò) Cloud 屏幕在管理界面中看到所有上傳的配置集。選擇 Cloud -> Tree -> configs 來(lái)查看它們。

如果指定了預(yù)先存在的配置集,它將在 ZooKeeper 中被覆蓋。

例如:

-n myconfig

-d <configset dir>:

要上傳的配置集的路徑。它應(yīng)該在它下面有一個(gè)“conf” 目錄,該目錄又包含 solrconfig.xml 等。

如果只提供一個(gè)名字,則將檢查$SOLR_HOME/server/solr/configsets的名稱??赡軙?huì)提供一個(gè)絕對(duì)路徑。

例如:

-d directory_under_configsets

-d /path/to/configset/source

-z <zkHost>:

ZooKeeper 連接字符串。如果在 ZK_HOST 定義了solr.in.sh或者solr.in.cmd,則它是不必要的。

例如:

-z 123.321.23.43:2181

帶有所有參數(shù)的命令示例如下:

bin/solr zk upconfig -z 111.222.333.444:2181 -n mynewconfig -d /path/to/configset
注意:更改配置時(shí)重新加載集合,此命令不會(huì)自動(dòng)使更改生效!它只是將配置集上傳到 ZooKeeper。您可以使用集合 API 的 RELOAD 命令重新加載使用此配置集的所有集合。

下載配置集

使用 zk downconfig 命令從 ZooKeeper 下載配置集到本地文件系統(tǒng)。

ZK 下載參數(shù)

下面列出的所有參數(shù)是必需的。

-n <name>:

在 ZooKeeper 中設(shè)置的配置名稱。管理界面 Cloud -> Tree -> configs 節(jié)點(diǎn)列出所有可用的配置集。 

例如:-n myconfig

-d <configset dir>:

將下載的配置集寫入到的路徑。如果只提供一個(gè)名稱,$SOLR_HOME/server/solr/configsets將是父級(jí)。絕對(duì)路徑也可以被提供。

無(wú)論哪種情況,目標(biāo)上預(yù)先存在的配置將被覆蓋!

例如:

-d directory_under_configsets

-d /path/to/configset/destination

-z <zkHost>:

ZooKeeper 連接字符串。如果在 ZK_HOST 中定義了solr.in.sh或者olr.in.cmd,則它是不必要的。

例如:-z 123.321.23.43:2181

帶有所有參數(shù)的這個(gè)命令的一個(gè)例子是:

bin/solr zk downconfig -z 111.222.333.444:2181 -n mynewconfig -d /path/to/configset

"最佳做法" 是將您的配置集以某種形式的版本控制作為 system-of-record。在這種情況下,很少使用 downconfig。

在本地文件和 ZooKeeper znodes 之間復(fù)制

使用該 zk cp 命令在 ZooKeeper znodes 和本地驅(qū)動(dòng)器之間傳輸文件和目錄。該命令將從本地驅(qū)動(dòng)器復(fù)制到 ZooKeeper,從 ZooKeeper 復(fù)制到本地驅(qū)動(dòng)器或從ZooKeeper 復(fù)制到 ZooKeeper。

ZK 復(fù)制參數(shù)

-r:

可選的。執(zhí)行一個(gè)遞歸的副本。如果 <src> 沒(méi)有指定 “-r”,那么該命令將失敗。

例如:-r

<src>:

要從中復(fù)制的文件或路徑。如果前綴為zk:則源被假定為 ZooKeeper。如果沒(méi)有前綴或前綴是 "file:",則為本地驅(qū)動(dòng)器。至少有一個(gè) <src> 或者 <dest> 必須使用前綴'zk:'否則該命令將失敗。

例如:

zk:/configs/myconfigs/solrconfig.xml

file:/Users/apache/configs/src

<dest>:

要復(fù)制到的文件或路徑。如果前綴為 zk: 則源被假定為 ZooKeeper。如果沒(méi)有前綴或前綴是 file: 這是本地驅(qū)動(dòng)器。

至少有一個(gè)<src>或者<dest>

必須使用前綴zk:否則該命令將失敗。如果<dest>以斜杠字符結(jié)尾,則會(huì)命名一個(gè)目錄。

例如:

zk:/configs/myconfigs/solrconfig.xml

file:/Users/apache/configs/src

-z <zkHost>:

ZooKeeper 連接字符串。如果在 ZK_HOST 中定義了solr.in.sh或者olr.in.cmd,則它是不必要的。

例如:-z 123.321.23.43:2181

帶參數(shù)的這個(gè)命令的例子是:

從本地遞歸復(fù)制一個(gè)目錄到 ZooKeeper:

bin/solr zk cp -r file:/apache/confgs/whatever/conf zk:/configs/myconf -z 111.222.333.444:2181

將一個(gè)文件從 ZooKeeper 復(fù)制到本地:

bin/solr zk cp zk:/configs/myconf/managed_schema /configs/myconf/managed_schema -z 111.222.333.444:2181

從 ZooKeeper 中刪除一個(gè) znode

使用 zk rm 命令從 ZooKeeper 中刪除一個(gè) znode(和可選的所有子節(jié)點(diǎn))

ZK 刪除參數(shù)

-r:

可選的。做一個(gè)遞歸刪除。如果指定了 <-r>,那么如果 <path> 有子級(jí),命令將失敗。

例如:-r

<path>:

要從 ZooKeeper 中刪除的路徑,無(wú)論是父節(jié)點(diǎn)還是子節(jié)點(diǎn)。

安全檢查有限,不能刪除 “/” 或 “/ zookeeper” 節(jié)點(diǎn)。

路徑被假定為一個(gè) ZooKeeper 節(jié)點(diǎn),不需要zk:前綴。

例如:

/configs

/configs/myconfigset

/configs/myconfigset/solrconfig.xml

-z <zkHost>:

ZooKeeper 連接字符串。如果在 ZK_HOST 中定義了solr.in.sh或者olr.in.cmd,則它是不必要的。

例如-z 123.321.23.43:2181

帶參數(shù)的這個(gè)命令的例子是:

bin/solr zk rm -r /configs
bin/solr zk rm /configs/myconfigset/schema.xml

將一個(gè) ZooKeeper znode 移動(dòng)到另一個(gè)(重命名)

使用該zk mv命令來(lái)移動(dòng)(重命名)ZooKeeper znode

ZK 移動(dòng)參數(shù)

<src>:

要重命名的 znode。假設(shè)zk:前綴。

例如:/configs/oldconfigset

<dest>:

znode 的新名稱。假設(shè)zk:前綴。

例如:/configs/newconfigset

-z <zkHost>:

ZooKeeper 連接字符串。如果在 ZK_HOST 中定義了solr.in.sh或者olr.in.cmd,則它是不必要的。

例如:-z 123.321.23.43:2181

這個(gè)命令的例子是:

bin/solr zk mv /configs/oldconfigset /configs/newconfigset

列出 ZooKeeper znode 的子項(xiàng)

使用 zk ls 命令查看 znode 的子項(xiàng)。

ZK 列表參數(shù)

-r (可選)。遞歸地列出一個(gè) znode 的所有子代。

+ 示例:-r

<path>:

ZooKeeper 列出的路徑。

例如:/collections/mycollection

-z <zkHost>:

ZooKeeper 連接字符串。如果在 ZK_HOST 中定義了solr.in.sh或者olr.in.cmd,則它是不必要的。

例如:-z 123.321.23.43:2181

帶參數(shù)的這個(gè)命令的例子是:

bin/solr zk ls -r /collections/mycollection
bin/solr zk ls /collections

創(chuàng)建一個(gè) znode(支持 chroot)

使用 zk mkroot 命令來(lái)創(chuàng)建一個(gè) znode。此命令的主要用途是支持 ZooKeeper 的 “chroot” 概念。但是,它也可以用來(lái)創(chuàng)建任意路徑。

創(chuàng)建 znode 參數(shù)

<path>:

ZooKeeper 創(chuàng)建的路徑。如有必要,將創(chuàng)建中間節(jié)點(diǎn)。即使未指定,也會(huì)采用前導(dǎo)斜杠。

例如:/solr

-z <zkHost>:

ZooKeeper 連接字符串。如果在 ZK_HOST 中定義了solr.in.sh或者olr.in.cmd,則它是不必要的。

例如:-z 123.321.23.43:2181

這個(gè)命令的例子:

bin/solr zk mkroot /solr -z 123.321.23.43:2181
bin/solr zk mkroot /solr/production
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)