环境:
CentOS 6.5, JDK 1.7, solr 5.0.0, ZooKeeper v3.4.6
参考文档:https://cwiki.apache.org/confluence/display/solr/Command+Line+Utilities
一、solrCloud的配置文件(特别是solrconfig.xml和schema.xml)上传到ZooKeeper的三种情况:
1. 通过bin/solr脚本运行solrCloud样例程序时
eg.
$bin/solr -e cloud -noprompt
#启动solrCloud,上传默认collection [gettingstarted]和默认configset [data_driven_schema_configs], 并且关联他们
2. 通过bin/solr脚本创建一个collection时
eg.
$bin/solr create -c mycollection -d data_driven_schema_configs
#-c 指定collection名称, -d 指定configset的目录路径
#此configset被上传到ZooKeeper的/configs/mycollection目录下
3. 通过zkcli脚本手动上传
eg.
$sh <SOLR_INSTALL_HOME>/server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost <host:port> -confname <name for configset> -solrhome <solrhome> \
-confdir <path to directory with configset>
二、命令行工具的使用 —— Solr's ZooKeeper CLI
1. 使用语法
见图:
2. 使用样例
上传配置文件目录到ZK
./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:9983 -cmd upconfig -confname my_new_config -confdir server/solr/configsets/basic_configs/conf
写任意数据到ZK文件
./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:9983 -cmd put /my_zk_file.txt 'some data'
上传本地文件到ZK
./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:9983 -cmd putfile /my_zk_file.txt /tmp/my_local_file.txt
连接collection与configset
./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:9983 -cmd linkconfig -collection gettingstarted -confname my_new_config