SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。
它有几个特色功能:
1)集中式的配置信息
2)自动容错
3)近实时搜索
4)查询时自动负载均衡
安装zookeeper
上面也说了 SolrCloud是基于Solr和Zookeeper的分布式搜索方案,所有要部署solrCloud+tomcat+zookeeper的集群,必须先安装zookeeper
安装环境:
Liux: CentOS release 6.4
JDK:1.7.0_55
因为我研究的是solr最新的版本,所以研究的是solr4.8.0然后solr4.8.0必须跑在jdk1.7以上的版本
1、zookeeper是个什么玩意?
答:顾名思义zookeeper就是动物园管理员,他是用来管Hadoop(大象)、Hive(蜜蜂)、pig(小猪)的管理员, Apache Hbase和 Apache Solr 的分布式集群都用到了zookeeper;Zookeeper:是一个分布式的、开源的程序协调服务,是hadoop项目下的一个子项目;
2、zookeeper伪集群安装
因为我演示的这套安装是单机版的安装,所以采用伪集群的方式进行安装,如果是真正的生成环境,将伪集群的ip改下就可以了,步骤是一样的,学会了伪集群安装,真正生产的多环境安装不会,那是不可能的一件事情。
第一步:下载最新的zooper软件:
Ubuntu 14.04安装分布式存储Sheepdog+ZooKeeper
分布式服务框架 ZooKeeper -- 管理分布式环境中的数据
第二步:为了测试真实我在我linux上面部署三个zookeeper服务
1.创建zookeeper的安装目录
2.[root@localhost solrCloud]# mkdir /usr/solrcould
将下载的zookeeper-3.3.6.tar.gz复制到该目录下,同时在/usr/solrcould目录下新建三个文件夹:如下所示:
1.[root@localhost solrcoulud]# ls
2.service1 service2 servive3 zookeeper-3.3.6.tar.gz
然后在每个文件夹里面解压一个zookeeper的下载包,并且还建了几个文件夹,总体结构如下:
1.[root@localhost service1]# ls
2.data datalog logs zookeeper-3.3.6
首先进入data目录,创建一个myid的文件,里面写入一个数字,比如我这个是server1,那么就写一个 1,server2对应myid文件就写入2,server3对应myid文件就写个3然后进入zookeeper/conf目录,如果是刚下过来,会有3个文件,configuration.xml, log4j.properties,zoo_sample.cfg,我们首先要做的就是在这个目录下创建一个zoo.cfg的配置文件,当然你可以把zoo_sample.cfg文件改成zoo.cfg,配置的内容如下所示:
service1 的zoo.cfg:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=5
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=2
# the directory where the snapshot is stored.
dataDir=/usr/solrcould/service1/data
dataLogDir=/usr/solrcould/service1/datalog
# the port at which the clients will connect
clientPort=2181
server.1=192.168.238.133:2888:3888
server.2=192.168.238.133:2889:3889
server.3=192.168.238.133:2890:3890
service2 的zoo.cfg:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=5
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=2
# the directory where the snapshot is stored.
dataDir=/usr/solrcould/service2/data
dataLogDir=/usr/solrcould/service2/datalog
# the port at which the clients will connect
clientPort=2182
server.1=192.168.238.133:2888:3888
server.2=192.168.238.133:2889:3889
server.3=192.168.238.133:2890:3890
service3 的zoo.cfg: