solrCloud分佈式集羣安裝配置

solrCloud分佈式集羣安裝配置
1.前提
安裝Zookeeper集羣

2.安裝部署多個solr節點
10.41.2.82
10.41.2.83
10.41.2.84
10.41.2.86

mkdir  -p   /usr/local/search
scp   -r    10.41.2.82:/usr/local/search/solr          /usr/local/search/
scp   -r    10.41.2.82:/usr/local/search/tomcat          /usr/local/search/


2.配置
 
  配置主要是將tomcat與Zookeeper相關聯。
 修改tomcat  bin目錄下catalina.sh文件。
2.1配置第一個節點(10.41.2.82)
solrCloud將配置信息存放在Zookeeper中,供其他節點共享。因此需要在一個節點上配置solrCloud的信息,其他節點無需配置,即可從Zookeeper中獲取。
vi   /usr/local/search/tomcat/apache-tomcat-7.0.55/bin/catalina.sh
JAVA_OPTS="-Dbootstrap_confdir=/usr/local/search/solr/solrhome/data/solr/collection1/conf -Dcollection.configName=solrconf -DzkHost=10.41.2.82:2181,10.41.2.83:2181,10.41.2.84:2181,10.41.2.85:2181,10.41.2.86:2181 -DnumShards=2    $JAVA_OPTS"





2.2配置其他節點(10.41.2.83,10.41.2.84,10.41.2.86)
vi   /usr/local/search/tomcat/apache-tomcat-7.0.55/bin/catalina.sh
JAVA_OPTS="-DzkHost=10.41.2.82:2181,10.41.2.83:2181,10.41.2.84:2181,10.41.2.85:2181,10.41.2.86:2181  $JAVA_OPTS"




2.3配置solr Collection
vi   /usr/local/search/solr/solrhome/data/solr/solr.xml

<solr>

  <solrcloud>
    <str name="host">${host:}</str>
    <int name="hostPort">8080</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
    <str name="zkHost">10.41.2.82:2181,10.41.2.83:2181,10.41.2.84:2181,10.41.2.85:2181,10.41.2.86:2181</str>
  </solrcloud>

  <shardHandlerFactory name="shardHandlerFactory"
    class="HttpShardHandlerFactory">
    <int name="socketTimeout">${socketTimeout:0}</int>
    <int name="connTimeout">${connTimeout:0}</int>
  </shardHandlerFactory>

</solr>




2.4移除core.properties

rm  -fr   /usr/local/search/solr/solrhome/data/solr/collection1/core.properties

(這樣集羣啓動後就沒有core


3.啓停
3.1啓動
3.1.1啓動Zookeeper
/usr/local/zookeeper/zookeeper-3.4.5/bin/zkServer.sh start

3.1.2啓動tomcat
注意:先啓動有solrCloud配置信息的那個節點,這裏是10.41.2.82
/usr/local/search/tomcat/apache-tomcat-7.0.55/bin/startup.sh

3.2停止
3.2.1停止tomcat
/usr/local/search/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh

3.2.2停止Zookeeper
/usr/local/zookeeper/zookeeper-3.4.5/bin/zkServer.sh stop


4.測試
4.1訪問Web-UI
http://10.41.2.82:8080/solr

http://10.41.2.82:8080/solr/#/~cloud




4.2創建collection,shard ,core
4.2.1創建Collection,自動分配shard和replica

curl  "http://10.41.2.82:8080/solr/admin/collections?action=CREATE&name=jinan&numShards=2&replicationFactor=2&maxShardsPerNode=2”

  這樣會出來一個名稱爲jinan的collection,它有2個shard,每個shard1個數據節點,1個備份節點,即該collection共有4個core

  缺點:不靈活,不能選擇適合的節點,不能選擇數據存放路徑,不能選擇實例存放路徑

 


訪問:

http://10.41.2.82:8080/solr/#/~cloud




可以看出創建了一個connection


刪除Collection:

http://10.41.2.82:8080/solr/admin/collections?action=DELETE&name=jinan


4.2.2創建Collection,手動分配shard和replica(推薦使用該方法,因爲可控性強)



curl "http://10.41.2.82:8080/solr/admin/cores?action=CREATE&name=inspur-shard1-replica1&instanceDir=/usr/local/search/solr/solrhome/data/solr/inspur-shard1-replica1&dataDir=/usr/local/search/solr/solrhome/data/solr/inspur-shard1-replica1/data&collection=inspur&shard=shard1" 

curl "http://10.41.2.83:8080/solr/admin/cores?action=CREATE&name=inspur-shard1-replica2&instanceDir=/usr/local/search/solr/solrhome/data/solr/inspur-shard1-replica2&dataDir=/usr/local/search/solr/solrhome/data/solr/inspur-shard1-replica2/data&collection=inspur&shard=shard1" 
   
curl "http://10.41.2.84:8080/solr/admin/cores?action=CREATE&name=inspur-shard2-replica1&instanceDir=/usr/local/search/solr/solrhome/data/solr/inspur-shard2-replica1&dataDir=/usr/local/search/solr/solrhome/data/solr/inspur-shard2-replica1/data&collection=inspur&shard=shard2" 

curl "http://10.41.2.86:8080/solr/admin/cores?action=CREATE&name=inspur-shard2-replica2&instanceDir=/usr/local/search/solr/solrhome/data/solr/inspur-shard2-replica2&dataDir=/usr/local/search/solr/solrhome/data/solr/inspur-shard2-replica2/data&collection=inspur&shard=shard2" 






訪問http://10.41.2.82:8080/solr/#/~cloud




5.添加節點
5.1部署新的節點(10.41.2.85)

mkdir  -p   /usr/local/search
scp   -r    10.41.2.82:/usr/local/search/solr          /usr/local/search/
scp   -r    10.41.2.82:/usr/local/search/tomcat          /usr/local/search/

5.2修改配置
因爲是直接拷貝過來的,路徑都是一樣的,所以無需配置

5.3刪除拷貝過來一些已經創建的core目錄

rm  -fr  /usr/local/search/solr/solrhome/data/solr/inspur-shard1-replica1/*
rm -fr  /usr/local/search/solr/solrhome/data/solr/jinan_shard1_replica1
rm  -fr   /usr/local/search/solr/solrhome/data/solr/jinan_shard1_replica2
rm  -fr   /usr/local/search/solr/solrhome/data/solr/collection1/data/*

5.4啓動節點
5.4.1修改啓動腳本catalina.sh

JAVA_OPTS="-DzkHost=10.41.2.82:2181,10.41.2.83:2181,10.41.2.84:2181,10.41.2.85:2181,10.41.2.86:2181 $JAVA_OPTS"



5.4.2啓動
/usr/local/search/tomcat/apache-tomcat-7.0.55/bin/startup.sh

5.5訪問Web-UI

http://10.41.2.82:8080/solr/#/~cloud




可以看出節點10.41.2.85已經加入到了名稱爲jinan的collection中了。

5.5手工新增core

curl "http://10.41.2.85:8080/solr/admin/cores?action=CREATE&name=inspur-shard2-replica3&instanceDir=/usr/local/search/solr/solrhome/data/solr/inspur-shard2-replica3&dataDir=/usr/local/search/solr/solrhome/data/solr/inspur-shard2-replica3/data&collection=inspur&shard=shard2" 


訪問Web-UI

http://10.41.2.82:8080/solr/#/~cloud




可以看出新增節點已經加入到名稱爲inspur的collection中。

6.刪除節點
只要每個shard中至少有一個節點存活就可以保證solrCloud的可用性。
將節點10.41.2.83停掉
/usr/local/search/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh

訪問Web-UI

http://10.41.2.82:8080/solr/#/~cloud



可以看出節點10.41.2.83節點的狀態已經變成不可用的,使用其他的節點來替代它

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章