Shell客户端操作命令
在使用Solr的Shell脚本前,需要安装Solr的客户端。
Solr配置集操作命令
操作 |
命令 |
参数说明 |
示例 |
---|---|---|---|
在本地指定路径生成Solr的配置文件集 |
solrctl confset --generate path [_default | -confWithHBase | -confWithHDFS | -confWithDisk | -confWithSchema ] |
|
solrctl confset --generate /home/solrDir或者solrctl confset --generate /home/solrDir -schemaless或者solrctl confset --generate /home/solrDir -confWithHBase或者solrctl confset --generate /home/solrDir -confWithHDFS或者solrctl confset --generate /home/solrDir -confWithDisk或者solrctl confset --generate /home/solrDir _default |
上传本地配置文件集给ZooKeeper,并指定其名称 |
solrctl confset --create name path -force |
|
solrctl confset --create myconf /home/solrDir/ |
更新Solr配置文件集 |
solrctl confset --update name path -force |
|
solrctl confset --update myconf /home/solrDir/ |
获取Solr的配置文件集,保存到客户端本地 |
solrctl confset --get name path |
|
solrctl confset --get myconf /home/solrTest/ |
上传文件到ZooKeeper上的指定路径 |
solrctl confset --putfile path localpath |
|
solrctl confset --putfile /configs/confWithSchema/test.xml /opt/test.xml |
获取配置文件集中指定路径的文件保存到本地 |
solrctl confset --getfile path filename |
|
solrctl confset --getfile /configs/confWithSchema/schema.xml schema.xml |
删除指定路径的文件 |
solrctl confset --clearfile path |
|
solrctl confset --clearfile /configs/confWithSchema/test.xml |
删除指定的配置文件集 |
solrctl confset --delete name |
|
solrctl confset --delete myconf |
列出Solr配置文件集名称 |
solrctl confset --list |
list为列出配置集文件名称指令。 |
solrctl confset --list |
- 当使用solrctl confset --get name path命令获取ZooKeeper上某个Solr配置集文件时,在指定的path下面会产生一个conf文件夹,conf目录下则为相应的配置文件(一般包括schema.xml和solrconfig.xml等)。
- 当执行删除配置集命令时,需要根据界面提示输入“y”进行删除确认。
Collection操作命令
操作 |
命令 |
参数说明 |
示例 |
---|---|---|---|
创建collection |
solrctl collection --create name [-s <numShards>] [-a Create collection with autoAddReplicas=true] [-S <true|false> Create collection true or false with sharedFsReplication] [-b <true|false> Create collection true or false with autoShardBalance] [-c <collection.configName>] [-r <replicationFactor>] [-m <maxShardsPerNode>] [-n <createNodeSet>] [-f <router.field>] [-p name=value ...] |
|
solrctl collection --create collectionTest -c myconf -s 3 -r 1 -m 1 -n solrIp1:port1_solr,solrIp2:port2_solr,solrIp3:port3_solr |
修改collection |
solrctl collection --modify name [-a <true|false> Modify collection true or false with autoAddReplicas] [-b <true|false> Modify collection true or false with autoShardBalance] [-r <replicationFactor>] [-m <maxShardsPerNode>] |
|
solrctl collection --modify collectionTest -b true |
删除collection |
solrctl collection --delete name |
|
solrctl collection --delete collectionTest |
重新加载某个collection |
solrctl collection --reload name |
|
solrctl collection --reload collection1 |
对collection的某个shard进行分片 |
solrctl collection --splitshard collection shard [-async <async task id>] |
说明:
async参数必须指定,任务将在服务端异步执行,通过requeststatus命令查询任务状态,每次任务需指定不同的async参数值。 |
solrctl collection --splitshard collection1 shard1 -async 1 |
对collection进行添加shard |
solrctl collection --createshard collection shard |
|
solrctl collection --createshard collection1 shard1 |
对collection进行删除shard |
solrctl collection --deleteshard collection shard |
|
solrctl collection --deleteshard collection1 shard1 |
对collection创建别名 |
solrctl collection --createalias aliasname collections |
|
solrctl collection --createalias mycollection collections1 |
删除collections的别名 |
solrctl collection --deletealias aliasname |
|
solrctl collection --deletealias mycollection |
删除collections的replica |
solrctl collection --deletereplica [-p name=value]… |
|
solrctl collection --deletereplica -p collection=collection1 -p shard=shard1 -p replica=core_node2 |
添加collections的replica |
solrctl collection --addreplica [-p name=value]… |
说明:
需要指定replica所属的collection、shard。 |
solrctl collection --addreplica -p collection=collection1 -p shard=shard1 -p node=192.168.0.22:21101_solr |
删除collection下的索引数据 |
solrctl collection --deletedocs name |
|
solrctl collection --deletedocs collection1 |
列出所有的collection |
solrctl collection --list |
list为列出Collection指令。 |
solrctl collection --list |
获取集群状态 |
solrctl collection --clusterstatus |
clusterstatus为集群状态 |
solrctl collection --clusterstatus |
获取overseer的状态和统计信息 |
solrctl collection --overseerstatus |
overseerstatus为overseer的状态和统计信息 |
solrctl collection --overseerstatus |
迁移源SolrServer实例上所有的Replica到目的SolrServer实例 |
solrctl collection --replacenode source_node target_node [-async <async task id>] [-p Replace node with parallel=true] [-t <timeout in s>] [-c Replace node with skipCheck=false] [-sotimeout <socket timeout in ms>] |
|
solrctl collection --replacenode 192.168.229.137:21101_solr 192.168.229.219:21104_solr -async 2 |
查询异步任务的执行状态 |
solrctl collection --requeststatus requestid |
requestid为查询异步任务的id。
说明:
查询结果中“msg”值为“found [requestid] in running tasks”时说明任务正在执行; 值为“found [requestid] in completed tasks”时说明任务已执行完成。 |
solrctl collection --requeststatus 1 |
- 当schema.xml配置集文件配置错误时,可能会导致创建collection失败,并且会留有垃圾数据,需要手动清除每个实例下该Collection的索引数据存储路径下的垃圾数据,并清除zookeeper上“/solr/clusterstate.json”文件,然后重启Solr组件。建议配置schema.xml后,创建单个单片的collection进行验证是否配置正确。
- 当Solr中索引数据存储HDFS时,可以通过修改“solrconfig.xml”中配置项:<int name="solr.hdfs.replication.number">${solr.hdfs.replication.number:3}</int>来设置索引数据在HDFS上的副本数,默认配置为3。同时可以修改“solrconfig.xml”中的配置项<int name="tlogDfsReplication">${solr.ulog.tlogDfsReplication:3}</int>来设置tlog的副本数,该参数默认值为3。
- 当执行删除collection、shard、别名、replica、数据的命令时,需要根据界面提示输入“y”进行删除确认。
cluster操作命令
操作 |
命令 |
参数说明 |
示例 |
---|---|---|---|
获取solr.xml文件 |
solrctl cluster --get-solrxml file |
|
solrctl cluster --get-solrxml /opt/client/solrtest.xml |
上传solr.xml文件 |
solrctl cluster --put-solrxml file |
|
solrctl cluster --put-solrxml /opt/client/solrtest.xml |
设置clusterprops中属性 |
solrctl cluster --set-property name value |
|
solrctl cluster --set-property urlScheme http |
移除clusterprops中指定属性 |
solrctl cluster --remove-property name |
|
solrctl cluster --remove-property urlScheme |
显示不再提供服务的空闲节点实例列表 |
solrctl cluster --list-free-node |
list-free-node为显示不再提供服务的空闲节点实例列表操作的指令 |
solrctl cluster --list-free-node |
显示支持本地磁盘的活跃节点实例列表 |
solrctl cluster --list-local-disk-live-node |
list-local-disk-live-node为显示支持本地磁盘的活跃节点实例列表的指令 |
solrctl cluster --list-local-disk-live-node |
显示collection的state.json文件信息 |
solrctl cluster --get-coll-state或 solrctl cluster --get-coll-state collection |
|
solrctl cluster --get-coll-state或 solrctl cluster --get-coll-state collection1 |
显示所有的solr实例信息 |
solrctl cluster --list-node |
list-node显示所有的solr实例信息 |
solrctl cluster --list-node |
显示所有在线solr实例信息 |
solrctl cluster --list-live-node |
list-live-node显示所有在线solr实例信息 |
solrctl cluster --list-live-node |
--list-free-node命令用于solr退服时,查询哪些节点可以进行安全的退服操作。
HBaseIndexer操作命令
操作 |
命令 |
参数说明 |
示例 |
---|---|---|---|
查看当前建立的Indexers状态 |
hbase-indexer list-indexers |
list-indexers为查看当前建立的Indexers状态。 |
hbase-indexer list-indexers |
删除创建过的Indexers |
hbase-indexer delete-indexer -n indexer_name |
|
hbase-indexer delete-indexer -n userIndexer |
创建Indexer |
hbase-indexer add-indexer -n indexer_name -c path/index.xml -cp solr.collection=collection_name -cp solr.zk=hostips:zkport/solr |
|
hbase-indexer add-indexer -n userIndexer -c /opt/client/Solr/hbase-indexer/conf/hbase-demo-indexer.xml -cp solr.collection=collection1 -cp solr.zk=192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181/solr |
创建索引任务 |
hbase-indexer batch-indexer --hbase-indexer-zk hostip:zkport --hbase-indexer-name indexer_name --out-put-dir hdfs_url --go-live --overwrite-output-dir --verbose --reducers number --zk-host hostip:zkport/solr --rowkey-dir hdfs_url --hbase-indexer-file configfilepath |
|
hbase-indexer batch-indexer --hbase-indexer-zk 192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181 --hbase-indexer-name userIndexer --output-dir hdfs://hacluster/user/solr/test --go-live --overwrite-output-dir --verbose --reducers 10 --zk-host 192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181/solr --rowkey-dir hdfs://hacluster/user/solr/rowkey --hbase-indexer-file /opt/client/Solr/hbase-indexer/conf/user.xml |
查看实时索引任务状态 |
hbase-indexer replication-status -z hostip:zkport --hbase-instance-file configfile_uri --enable-jmx |
|
hbase-indexer replication-status -z 192.168.1.1:2181 --hbase-instance-file /opt/client/Solr/hbase-indexer/conf/hbase-site.xml --enable-jmx |
在安全模式集群下,查看实时索引任务状态命令,需要使用hbase用户进行鉴权。