首先准备好三个东西:
jdk-8u45-linux-x64.tar.gz
zookeeper-3.4.6.tar.gz
solrcloud-5.3.1.tar.gz
1. 然后解压jdk,配置jdk环境,这一步在上篇文章已经写了,在这里就不再重复,
2.配置开启zookeeper集群
tar xf /home/workspace/soft/zookeeper-3.4.6.tar.gz
//修改zookeeper配置文件
cd zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
<pre name="code" class="plain">
vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/path/to/zookeeper/data
clientPort=2181
server.1=192.168.156.121:2888:3888
server.2=192.168.156.122:2888:3888
server.3=192.168.156.123:2888:3888
1
2
3
4
5
|
# 注意每台机器上的不一样
echo
"1"
>
myid
#在solr1上
echo
"2"
>
myid
#在solr2上
echo
"3"
>
myid
#在solr3上
|
zookeeper-3.4.6/bin ./zkServer.sh start
3.将solr安装为服务
tar xf /home/workspace/soft/solrcloud-5.3.1.tar.gz
创建两个文件夹solr、data
mkdir -p /solrcloud/{data,solr}
cd solr-5.3.1/bin
./install_solr_service.sh /home/wokspace/soft/solr-5.3.1.tgz -d /solrcloud/data/ -i /solrcloud/solr/ -s solrcloud -u root -p 8080
这里面-d是放solr的data数据,-i是放solr文件,-s是服务名 -u是用户 -p是实用端口,默认是8983
cd /home/workspace/solrcloud/data
ls
data log4j.properties logs solr-8983.pid solr.in.sh
vim solr.in.sh
# Set the ZooKeeper connection string if using an external ZooKeeper ensemble
# e.g. host1:2181,host2:2181/chroot
# Leave empty if not using SolrCloud
ZK_HOST="192.168.156.121:2181,192.168.156.122:2181,192.168.156.123:2181"
service solrcloud restart
4.更新配置文件创建collection
cd solr-5.3.1
./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181 -cmd upconfig -confname demo-conf -confdir server/solr/configsets/basic_configs/conf/
./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181 -cmd linkconfig -collection demo -confname demo-conf
curl 'http://192.168.156.121:8080/solr/admin/collections?action=CREATE&name=demo&numShards=1&replicationFactor=1'
其中-upconfig 是更新配置文件,-linkconfig是创建链接
最后curl 提交请求创建collection,collection名称为demo,一个collection创建一个shard,一个shard创建一个replica
5.添加文件数据索引
bin/post -c demo -p 8080 /home/workspace/solrcloud/example/exampledocs/books.json
以上 -c是指定要上传数据给哪个collection,-p是端口号
7.查询
curl 'http://192.168.219.128:8080/solr/demo/select?wt=json&indent=true&q=cat:book&fl=name'
响应
{
"responseHeader":{
"status":0,
"QTime":6,
"params":{
"q":"cat:book",
"indent":"true",
"fl":"name",
"wt":"json"}},
"response":{"numFound":4,"start":0,"docs":[
{
"name":["The Lightning Thief"]},
{
"name":["The Sea of Monsters"]},
{
"name":["Sophie's World : The Greek Philosophers"]},
{
"name":["Lucene in Action, Second Edition"]}]
}}