關於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,還有一些字典的配置,包括怎麼使用開源分詞。