solr 分布式(複製)配置

來源:互聯網
上載者:User

http://chenlb.blogjava.net/archive/2008/07/04/212398.html

 

solr
分布式其實是分發,這概念像Mysql的複製。所有的索引的改變都在主伺服器裡,所有的查詢都在從服務裡。從伺服器不斷地(定時)從主伺服器拉內容,以保
持資料一致。

先描述下我的環境:
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
最好兩機可以ssh無密碼互動,ssh無密碼登入請看:http://www.blogjava.net/chenlb/archive/2008/07/03/212293.html

    solr的分發是用rsync的。
    快照與分發過程:

1.snapshooter
 命令在主伺服器產
生快照。一般在commit和optimize之後被solr調用。

2.snappuller

命令在從伺服器運行,所做的事是從主伺服器拉最新的快照。 用rsync的daemon模式來運行可以獲得更好的效能與更底的CPU利用率。

3.snapinstaller

命令在從伺服器運行,當從伺服器從主伺服器拉完快照後才執行。它會通知本地Solr伺服器開啟一個新的index
reader,然後預熱這個新index reader的緩衝,此時有請求,原來的index reader繼續為這此請求服務。一但預熱完成,Solr
啟用新的index reader,舊的被消亡。

    Solr 的Distribution(分發)
在Scripts檔案裡記錄。在solr_home/conf/scripts.conf檔案裡。

我現在這樣配置:

user
=
chenlb//各自伺服器hostname
solr_hostname
=
localhost
solr_port
=
8080

rsyncd_port
=
18080//slaver本地索引檔案路徑
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


上面的配置兩機都一樣。

1.安裝好solr後啟動它們,怎樣在tomcat安裝solr請看:http://www.blogjava.net/chenlb/archive/2008/03/25/188459.html

[chenlb@solr
-
master 
~
]$ .
/
tomcat
-
5.5
.
26
/
bin
/
startup.sh


啟用且啟動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


提交資料

[chenlb@solr
-
master exampledocs]$ .
/
post.sh 
*
.xml


產生快照

[chenlb@solr
-
master 
~
]$ .
/
solr
-
home
/
bin
/
snapshooter 
-
u chenlb 
-
v


說明:由於<listener event="postCommit"
class="solr.RunExecutableListener">...</listener>沒有設定成功(出現
java.io.IOException: Cannot run program "snapshooter" (in directory
"solr/bin"): java.io.IOException: error=2, No such file or
directory,現在還沒解決),可以只能手動產生快照(當然也可以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

現在可以在solr-slave裡看結果了:
http://192.168.1.155:8080/solr/select?q=solr

http://192.168.1.181:8080/solr/select?q=solr

看結果是否一樣。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.