SolrCloud是基于solr和ZooKeeper的分布式搜索方案,主要思想是使用ZooKeeper作为集群的配置中心。
交互式SolrCloud
solr -e cloud
他将启动一个交互式会话,指导我们搭建带有嵌入式ZooKeeper的简单SolrCloud集群。该脚本通过询问希望在本地集群中运行多少个Solr节点来启动,默认值为2。该脚本支持启动最多4个节点,但我们建议在开始时使用默认值2。这些节点将各自存在于单个机器上,但将使用不同的端口来模拟不同服务器上的操作。接下来,脚本将提示您输入要绑定每个Solr节点的端口,例如:
为每个节点选择任何可用端口; 第一个节点的默认值为8983,第二个节点的默认值为7574。该脚本将按顺序启动每个节点,并显示其用于启动服务器的命令,例如:
solr start -cloud -s example/cloud/node1/solr -p 9983
第一节点也将开始绑定到端口9983。由-s选项指定节点,-p选项指导端口。启动集群中的所有节点后,脚本将提示您输入要创建的集合的名称:
接下来,脚本将提示您输入分布集合的分片数。如果您不确定,我们建议使用默认值2,这样您可以看到一个集合在一个SolrCloud集群跨多个节点分布。接下来,脚本将提示您为每个分片创建的副本数。如果不确定,则使用默认值2,这样就可以看到SolrCloud是如何处理拷贝的。
最后,脚本将提示您输入集合的配置目录的名称。您可以选择basic_configs,data_driven_schema_configs
或sample_techproducts_configs
。配置从server/solr/configsets/目录上拉。
Solr状态
此时,您应该在您的本地SolrCloud集群中创建一个新集合。要验证此,可以运行status命令:
solr status
如果在此过程中遇到任何错误,请检查Solr的日志文件example/cloud/node1/logs
和example/cloud/node2/logs
。
Solr还提供了使用healthcheck
命令对集合执行基本诊断的方法:
solr healthcheck -c wenqyCloud
竟然报错,不管了。。。
healthcheck命令收集集合中有关每个副本的基本信息,例如文档数,当前状态(活动等)和地址(副本驻留在集群中)。
要SolrCloud模式停止Solr的,你可以使用 bin/solr脚本并发出 stop命令,如:
solr stop -all
还可以使用以下命令使SolrCloud以所有默认值而不是交互式会话开始:
solr -e cloud -noprompt
重新启动节点
您可以使用重新启动SolrCloud节点bin/solr脚本。例如,要重新启动在端口9983(使用嵌入式ZooKeeper服务器)上运行的node1,您将执行:
solr restart -c -p 9983 -s D:\solr\solr-6.2.1\example\cloud\node1\solr
要重新启动在端口7574上运行的node2,您可以:
solr restart -c -p 7574 -z localhost:9983 -s D:\solr\solr-6.2.1\example\cloud\node2\solr
请注意,启动node2时需要指定ZooKeeper地址(-z localhost:9983),以便它可以与node1一起加入集群。
向节点添加节点
使用启动脚本启动SolrCloud群集后,可以通过以下方式向其中添加新节点:
$ mkdir <solr.home for new solr node> $ cp <existing solr.xml path> <new solr.home> $ bin/solr start -cloud -s solr.home/solr -p <port num> -z <zk hosts string>
请注意,上面需要您创建一个Solr主目录。需要复制 solr.xml到solr_home目录中的新建solr节点目录中。
向以“bin / solr -e cloud”开头的示例添加节点的示例(使用目录结构):
$ mkdir -p D:\solr\solr-6.2.1\example\cloud\node3\solr $ copy D:\solr\solr-6.2.1\server\solr\solr.xml D:\solr\solr-6.2.1\example\cloud\node3\solr $ solr start -cloud -s D:\solr\solr-6.2.1\example\cloud\node3\solr -p 8987 -z localhost:9983
上面的命令将启动与Solr节点example/cloud/node3/solr。新节点将其日志文件写入example/cloud/node3/logs
。
云里雾里的,先照猫画虎了再说。。。
发表评论