solr 分布式其實(shí)是分發(fā),這概念像Mysql的復(fù)制。所有的索引的改變都在主服務(wù)器里,所有的查詢都在從服務(wù)里。從服務(wù)器不斷地(定時(shí))從主服務(wù)器拉內(nèi)容,以保持?jǐn)?shù)據(jù)一致。
先描述下我的環(huán)境:
solr-master(192.168.1.181), solr-slave(192.168.1.155), jdke1.6.0_06, tomcat-5.5.26, solr-1.2
tomcat_home在 /home/chenlb/tomcat-5.5.26
solr_home在 /home/chenlb/solr-home
solr解壓后的目錄 /home/chenlb/solr-1.2.0
最好兩機(jī)可以ssh無密碼交互,ssh無密碼登錄請看:
http://www.tkk7.com/chenlb/archive/2008/07/03/212293.html
solr的分發(fā)是用rsync的。
快照與分發(fā)過程:
1.
snapshooter 命令在主服務(wù)器產(chǎn)生快照。一般在commit和optimize之后被solr調(diào)用。
2.
snappuller 命令在從服務(wù)器運(yùn)行,所做的事是從主服務(wù)器拉最新的快照。 用rsync的daemon模式來運(yùn)行可以獲得更好的性能與更底的CPU利用率。
3.
snapinstaller 命令在從服務(wù)器運(yùn)行,當(dāng)從服務(wù)器從主服務(wù)器拉完快照后才執(zhí)行。它會(huì)通知本地Solr服務(wù)器打開一個(gè)新的index reader,然后預(yù)熱這個(gè)新index reader的緩存,此時(shí)有請求,原來的index reader繼續(xù)為這此請求服務(wù)。一但預(yù)熱完成,Solr 啟用新的index reader,舊的被消亡。
Solr 的Distribution(分發(fā)) 在Scripts文件里記錄。在solr_home/conf/scripts.conf文件里。
我現(xiàn)在這樣配置:
user=chenlb
solr_hostname=localhost
solr_port=8080
rsyncd_port=18080
data_dir=/home/chenlb/solr-home/data
webapp_name=solr
master_host=192.168.1.181
master_data_dir=/home/chenlb/solr-home/data
master_status_dir=/home/chenlb/solr-home/logs
上面的配置兩機(jī)都一樣。
1.安裝好solr后啟動(dòng)它們,怎樣在tomcat安裝solr請看:
http://www.tkk7.com/chenlb/archive/2008/03/25/188459.html
[chenlb@solr-master ~]$ ./tomcat-5.5.26/bin/startup.sh
啟用且啟動(dòng)rsync
[chenlb@solr-master ~]$ ./solr-home/bin/rsyncd-enable -u chenlb -v
[chenlb@solr-master ~]$ ./solr-home/bin/rsyncd-start -u chenlb -v
[chenlb@solr-slave ~]$ ./tomcat-5.5.26/bin/startup.sh
2.solr-master
先修改post.sh
[chenlb@solr-master ~]$ cd solr-1.2.0/example/exampledocs/
[chenlb@solr-master exampledocs]$ vi post.sh
[chenlb@solr-master exampledocs]$
#把http://localhost:8389/solr/update改下面的
http://localhost:8080/solr/update
提交數(shù)據(jù)
[chenlb@solr-master exampledocs]$ ./post.sh *.xml
產(chǎn)生快照
[chenlb@solr-master ~]$ ./solr-home/bin/snapshooter -u chenlb -v
說明:由于<listener event="postCommit" class="solr.RunExecutableListener">...</listener>沒有設(shè)置成功(出現(xiàn)java.io.IOException: Cannot run program "snapshooter" (in directory "solr/bin"): java.io.IOException: error=2, No such file or directory,現(xiàn)在還沒解決),可以只能手動(dòng)生成快照(當(dāng)然也可以cron)
3.solr-slave
啟用快照下拉
[chenlb@solr-slave ~]$ ./solr-home/bin/snappuller-enable -u chenlb -v
拉快照
[chenlb@solr-slave ~]$ ./solr-home/bin/snappuller -u chenlb -v
安裝
[chenlb@solr-slave ~]$ ./solr-home/bin/snapinstaller -u chenlb -v
現(xiàn)在可以在solr-slave里看結(jié)果了:
http://192.168.1.155:8080/solr/select?q=solr
http://192.168.1.181:8080/solr/select?q=solr
看結(jié)果是否一樣。
posted on 2008-07-04 16:49
流浪汗 閱讀(3166)
評論(0) 編輯 收藏 所屬分類:
Lucene