您的位置:首页 > 其它

内存 其访问权已经不属于该应用程序

2011-05-24 15:48 183 查看
solr 分布式(复制)配置

    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

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

上面的配置两机都一样。

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

看结果是否一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: