首先準備好三個東西:
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是實用端口,默認是8983cd /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"]}]
}}