关于solr-cloud的搭建
原创文章,转载请注明
1.首先下载solr最新版
首先在官网下载最新的solrcloud,我这时下载的最新版本是solr5.2.1(其实从solr4开始就已经是solrcloud了,之前都是solr,依赖于master-slave模式)
2.创建第一个索引库
按照wiki的指示,创建一个单独的solr实例,地址为:https://cwiki.apache.org/confluence/display/solr/Getting+Started+with+SolrCloud
值得一提的是,这里的solr不需要单独的部署tomcat或者zookeeper,新版的solrcloud已经自带jetty和solr-zookeeper,我们依照wiki首先创建一个即可。
全部按照默认走,这时,我们应该有了一个两个shard,每个shard同时有两个core的一个collection
3.接下来,我们尝试自己增加一个collection
这个是一些solr的api,我们可以进行利用这些api:
https://cwiki.apache.org/confluence/display/solr/Collections+API#CollectionsAPI-api1
这时,我们按照第一个方法,创建collection:
curl ‘http://localhost:8983/solr/admin/collections?action=CREATE&name= mycore&numShards=1&replicationFactor=1’
这时,我们构建了一个只有一个shard,一个node的collection,但是这个可能不是我们的需求,我们需要给一个shard增加node或者给这个collection增加shard
4.给一个collection增加shard
http://localhost:8983/solr/admin/collections?action=CREATESHARD&collection=mycore&shard=shard1
我们执行上述这个请求,就会发现给一个collection创建了一个shard。
5.接着给一个shard增加node(专业名词叫增加replica)
现在我们发现mycore已经有了两个shard,shard1有1一个replica,shard2有两个replica
6.创建自己的配置文件
之前我们构建的集合其实基本上都是按照默认的配置文件,在solrcloud初始的时候已经注册了三种配置文件的集合,在
/solr-5.2.1/server/solr/configsets
下,分别是basic_configs,data_driven_schema_configs,sample_techproducts_configs如果我们需要建立自己的配置文件,我们在这个集合下新建一个文件夹,叫skyrunner_configs,然后随便先copy一个文件夹里的如basic_configs下的文件进去,然后我们要做的是,把这个文件配置传给zookeeper,让它帮我们维护。
我们需要依靠 https://cwiki.apache.org/confluence/display/solr/Using+ZooKeeper+to+Manage+Configuration+Files
我们按照里面的说明,还有 https://cwiki.apache.org/confluence/display/solr/Command+Line+Utilities里面的说明,增加一个配置
./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:9983 -cmd upconfig -confname skyrunnercon1 -confdir ../server/solr/configsets/skyrunner_configs/conf
这时,我们已经上传了我们的配置文件到zookeeper,我们再使用:
http://localhost:8983/solr/admin/collections?action=CREATE&name=skyrunnercol1&numShards=2&replicationFactor=2&maxShardsPerNode=2&collection.configName=skyrunnercon1
来构建我们定义好的,两个shard,每个shard两个repilica的应用
7.增加一个node,即增加一个jetty服务
但是我们这时候发现每个shard里面的repilica不够用,原来只有两个应用,即两个jetty服务在跑,我们需要增加一个jetty服务。
我们依据https://cwiki.apache.org/confluence/display/solr/Getting+Started+with+SolrCloud在后面的办法,先在solr-5.2.1/example/cloud下新建一个目录,如node3,然后建立solr子文件夹,然后将我们的solr.xml copy进去,solr.xml本身在solr-5.2.1/server/solr下也有,从我们的某一个应用copy也可以。
我们利用启动脚本进行启动,./solr start -cloud -s example/cloud/node3/solr -p 8987 -z localhost:9983 ,要注意的是
启动之后我们会发现里面没有core,我们需要依次添加进去
8.日志查看
日志一般在
solr-5.2.1/server/logs
下面,一般我们启动几个jetty服务,它就会默认出现几个日志,如solr-8983-console.log,这就是8983端口对应的日志,还有solr.log,一般就是启动日志或者多个节点之间的备份日志,默认还有gc日志等,我们都可以自己设置了。一般在每个node下也会有一些solr日志,那些日志也都可以自己配置。
然后我们就可以正常使用solr了,但是一般可能我们用的zookeeper是我们自己搭的zookeeper节点。
之后在说怎么具体的配置solrconfig.xml和schema.xml,还有一些字典的配置,包括怎么使用开源分词。