写在前面的话:本文涉及到软件包:zookeeper-3.4.6 solr-4.10.2
一、什么是solr、Lucence
请移步官网,一款技术的出现的目的在于解决什么问题,看官方说明是最好的阐释。
二、Solr的基本模块概念
三、搭建过程1.CollectionsolrCloud 逻辑意义上的完整索引(注:索引和检索是搜索引擎主要构成模块)
2. SolrCore
一个Solr包括一个或者多个Solr Core,每个SolrCore对应一个索引或者Collection的Shard(注:下面通过例子解释这个概念)
3.Leader赢得选举的shard replica
4.ReplicaShard的拷贝
5.ShardCollection的逻辑分片(注:shard在分布式系统是经常谈论的一个概念,简单的理解就是一分为几)
6.Zookeeper配置信息管理、分布式锁功能,对SolrCloud是必须的
1.搭建zookeeper集群,本文例子是单机启动三个zookeeper服务集群
(1) 下载和解压zk
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz tar -zxvf zookeeper-3.4.6.tar.gz
(2) 新建三个目录,比如Zk-Server1, Zk-Server2,Zk-Server3,并将zookeeper-3.3.6分别拷贝到这三个目录下,
在这三个目录里面新建data dataLog文件夹,在data里面新建myid,并依次写入内容1,2,3
比如笔者路径/home/jacin1/zookeeperTest/server1/data/myid 的内容为1, 以此类推。
修改zookeeper-3.4.6/conf的zoo_sample.cfg配置文件,重命名zoo_sample.cfg为zoo.cfg(拷贝一份也可),
配置如下,主要配置dataDir、dataLogDir和 clientPort,其他的三个Zk-server配置一致
(3) 启动zk,在相对应的zookeeper-3.3.6/bin目录下执行./zkServer.sh start# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored.其他两个节点路径配置为Server2 Server3 dataDir=/home/jacin1/ZookeeperTest/Server1/data #the directory where log is 其他两个节点路径配置为 Server2 Server3 storeddataLogDir=/home/jacin1/ZookeeperTest/Server1/dataLog # the port at which the clients will,其他两个节点配置为 2182 2183 connectclientPort=2181 server.1=172.0.0.1:2881:3881 server.2=172.0.0.1:2882:3882 server.3=172.0.0.1:2893:3893
2.搭建solrcloud
(1)下载solr和解压solr
wget http://mirror.bit.edu.cn/apache/lucene/solr/4.10.1/solr-4.10.2.tgz tar -zxvf solr-4.10.2.tgz
(2) 分别拷贝4份solr-4.10.1 目录下example 并命名为solr-node1, solr-node2, solr-node3, solr-node4
进入solr-node1目录, 启动solr1
进入solr-node2目录,启动solr2sudo java -DnumShards=2 -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=collection1config -Xmx1024M -DzkHost=127.0.0.1:2181,127.0.0.1:2182,172.17.6.170:2183 -jar start.jar
进入solr-node3目录,启动solr3sudo java -DnumShards=2 -Xmx1024M -Djetty.port=8984 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 -jar start.jar
进入solr-node4目录,启动solr4sudo java -DnumShards=2 -Xmx1024M -Djetty.port=8985 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 -jar start.jar
sudo java -DnumShards=2 -Xmx1024M -Djetty.port=8986 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 -jar start.jar