ZooKeeper操作

2018-11-08 15:59 更新

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

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

上傳配置集

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

ZK 上傳參數(shù)

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

-n <name>:

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

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

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

例如:

-n myconfig

-d <configset dir>:

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

如果只提供一個名字,則將檢查$SOLR_HOME/server/solr/configsets的名稱??赡軙峁┮粋€絕對路徑。

例如:

-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
注意:更改配置時重新加載集合,此命令不會自動使更改生效!它只是將配置集上傳到 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>:

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

無論哪種情況,目標(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ù)的這個命令的一個例子是:

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ū)動器之間傳輸文件和目錄。該命令將從本地驅(qū)動器復(fù)制到 ZooKeeper,從 ZooKeeper 復(fù)制到本地驅(qū)動器或從ZooKeeper 復(fù)制到 ZooKeeper。

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

-r:

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

例如:-r

<src>:

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

例如:

zk:/configs/myconfigs/solrconfig.xml

file:/Users/apache/configs/src

<dest>:

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

至少有一個<src>或者<dest>

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

例如:

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ù)的這個命令的例子是:

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

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

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

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

從 ZooKeeper 中刪除一個 znode

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

ZK 刪除參數(shù)

-r:

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

例如:-r

<path>:

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

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

路徑被假定為一個 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ù)的這個命令的例子是:

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

將一個 ZooKeeper znode 移動到另一個(重命名)

使用該zk mv命令來移動(重命名)ZooKeeper znode

ZK 移動參數(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

這個命令的例子是:

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

列出 ZooKeeper znode 的子項

使用 zk ls 命令查看 znode 的子項。

ZK 列表參數(shù)

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

+ 示例:-r

<path>:

ZooKeeper 列出的路徑。

例如:/collections/mycollection

-z <zkHost>:

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

例如:-z 123.321.23.43:2181

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

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

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

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

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

<path>:

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

例如:/solr

-z <zkHost>:

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

例如:-z 123.321.23.43:2181

這個命令的例子:

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號