SOLRCLOUD分布式集群部署步骤

● Solr及SolrCloud简介
    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
    SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。它有以下几个特点:
a. 集中式的配置信息管理。
b. 自动容错。
c. 近实时搜索。
d. 查询时自动负载均衡。
e. 将索引存储在HDFS上。
f. 通过MR批量创建索引。
    更多关于SolrCloud的相关介绍可参考以下链接:
a. http://www.chepoo.com/solrcloud-introduction.html
b. http://www.cnblogs.com/phinecos/archive/2012/02/10/2345634.html
c. https://cwiki.apache.org/confluence/display/solr/SolrCloud
● 软件包准备
1. jdk-7u79-linux-x64.tar.gz
2. apache-tomcat-7.0.62.tar.gz
3. solr-5.2.1.tgz
4. zookeeper-3.4.6.tar.gz
● 服务器准备
    准备三台服务器:
a. 192.168.1.131
b. 192.168.1.141
c. 192.168.1.146
● SolrCloud集群搭建步骤

  ○ 服务器环境配置
      i. 配置主机名和IP映射,在3台服务器的/etc/hosts文件中添加以下几行:

192.168.1.131 solr-cloud-master
192.168.1.141 solr-cloud-slave1
192.168.1.146 solr-cloud-slave2

将文件同步到其它机器上。  
scp /etc/hosts solr-cloud-slave1:/etc/
scp /ect/hosts solr-cloud-slave2:/etc/
ii. 关闭防火墙,在生产环境中需要开放相应的端口。
service iptables stop
chkconfig iptables off

  ○ 安装文件目录规划
      i. JDK安装目录:/usr/local/lib
      ii. Solr安装目录:/opt/SolrCloud/Solr/solr
      iii. Solr配置文件目录:/opt/SolrCloud/Solr/solr-config
      iv. Solr数据文件目录:/apps/data/solr-cores
      v. Zookeeper安装目录:/opt/SolrCloud/Zookeeper
      vi. Zookeeper数据文件目录:/apps/data/zookeeper/data
      vii. Tomcat安装目录:/opt/SolrCloud/Tomcat

除了安装JDK的目录不需要创建,其它目录都需要进行创建。
○ 安装JDK
i. 解压 jdk-7u79-linux-x64.tar.gz 到 /usr/local/lib/ 目录下并重命名

      ii. 在/etc/profile.d/ 目录下创建一个shell脚本文件并添加一下内容:

配置立即生效:
source /etc/profile.d/jdk_env.sh

输入 java -version 检测是否安装成功

也可以直接修改/etc/profile文件,添加的内容都是一样的。

同步配置到其它机器:

scp -r /usr/local/lib/jdk solr-cloud-slave1:/usr/local/lib/
scp /etc/profile.d/jdk_env.sh solr-cloud-slave1:/ect/profile.d/
source /etc/profile.d/jdk_env.sh

scp -r /usr/local/lib/jdk solr-cloud-slave2:/usr/local/lib/
scp /ect/profile.d/jdk_env.sh solr-cloud-slave2:/etc/profile.d/
source /etc/profile.d/jdk_env.sh

  ○ 安装配置Zookeeper
      i. 解压 zookeeper-3.4.6.tar.gz  到 /opt/SolrCloud/Zookeeper/ 目录,并修改目录所有者。



      ii. 配置zookeeper

cd /opt/SolrCloud/Zookeeper/zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
iii. 修改zoo.cfg

      iv. 参数详解

tickTime:该参数有默认值:3000,单位是毫秒(ms),可以不配置,不支持系统属性方式配置,参数tickTime用于配置Zookeeper中最小时间单元的长度,
很多运行时的时间间隔都是使用tickTime的倍数来表示的。例如,Zookeeper中会话的最小超时时间默认是2*tickTime。

initLimit:该参数有默认值:10,即表示是参数tickTime值的10倍,必须配置,且需要配置一个正整数,不支持系统属性方式设置。该参数用于配置Leader服务器等待Follower启动,
并完成数据同步的时间。Follower服务器启动过程中,会与Leader建立连接并完成数据的同步,从而确定自己对外提供服务的起始状态。Leader服务器允许Follower在inittLimit时间内完成这个工作。通常情况下,运维人员不用太在意这个参数的配置,使用其默认值即可。但如果随着Zookeeper集群管理的数据量增大,Follower服务器在启动的时候,从Leader上进行同步数据的时间也会相应变长,于是无法在较短的时间完成数据同步。因此,在这种情况下,有必要适当调大这个参数。

syncLimit:该参数有默认值:5,即表示tickTime值得5倍,必须配置,且需要配置一个正整数,不支持系统属性设置。该参数用于配置Leader服务器和Follower之间进行心跳检测的最大延迟时间。在Zookeeper集群运行过程中,Leader服务器会与所有Follower进行心跳检测来确定该服务器是否存活。如果Leader服务器在syncLimit时间内无法获取到Follower的心跳检测响应,那么Leader就会认为该Follower已经脱离了和自己的同步。

dataDir:该参数无默认值,必须配置,不支持系统属性方式设置,参数dataDir用于配置Zookeeper服务器存储快照文件的目录。默认情况下,如果没有配置参数dataLogDir,那么事务日志也会存储在这个目录中。考虑到事务日志的写性能直接影响Zookeeper整体的服务能力,因此建议同时通过参数dataLogDir来配置Zookeeper事务日志的存储目录。

dataLogDir:该参数有默认值,dataDir,可以不配置,不支持系统属性方式设置。参数dataLogDir用于配置Zookeeper服务器存储事务日志文件的目录。默认情况下,Zookeeper会将事务日志文件和快照数据存储在同一个目录中,应尽量将这两者的目录区分开来,另外,如果条件允许,可以将事务日志的存储配置在一个单独的磁盘上。事务日志记录对于磁盘的性能要求非常高,为了保证数据的一致性,Zookeeper在返回客户端事务请求响应之前,必须将本次请求对应的事务日志写入到磁盘中。因此,事务日志写入的性能直接决定了Zookeeper在处理事务请求是的吞吐。

clientPort:参数clientPort用于配置当前服务器对外的服务端口,客户端会通过该端口和Zookeeper服务器建立连接,一般设置为2181。每台Zookeeper服务器都可以配置任意可以的端口,同时,集群中的所以服务器不需要保持clientPort端口一致。

server.id=host:port:port :该参数没有默认值,在单机模式下可以不配置,不支持系统属性方式设置。该参数用于配置组成Zookeeper集群的机器列表,其中id即为Server ID,与每台服务器myid文件中的数字相对应。同时,在该参数中,会配置两个端口:第一个端口用于指定Follower服务器与Leader进行运行时通信和数据同步是所使用的端口,第二个端口则专门用于Leader选举过程中的投票通信。在Zookeeper服务器启动的时候,其会根据myid文件中配置的Server ID来确定自己是哪台服务器,并使用对于配置的端口来进行启动。

      v. 同步Zookeeper的配置及相关目录到其它两台机器:

scp -r /opt/SolrCloud/Zookeeper/zookeeper-3.4.6/ solr-cloud-slave1:/opt/SolrCloud/Zookeeper/
scp -r /apps/data/zookeeper/ solr-cloud-slave1:/apps/data/

scp -r /opt/SolrCloud/Zookeeper/zookeeper-3.4.6/ solr-cloud-slave2:/opt/SolrCloud/Zookeeper/
scp -r /apps/data/zookeeper/ solr-cloud-slave2:/apps/data/
vi. 创建myid文件,并写入zoo.cfg中对于的Server ID:

solr-cloud-master:

solr-cloud-slave1:

solr-cloud-slave2:

      vii. 分别启动三台Zookeeper服务器:

cd /opt/SolrCloud/Zookeeper/zookeeper-3.4.6/bin/
./zkServer.sh start

      viii. 查看Zookeeper状态

solr-cloud-master:

solr-cloud-slave1:

solr-cloud-slave2:

      ix. Zookeeper其它参考信息:

Zookeeper官网:
http://zookeeper.apache.org/doc/
Zookeeper维基百科:
https://cwiki.apache.org/confluence/display/ZOOKEEPER/Index;jsessionid=0B5F772DCFF3506613D26E3752F7D415
Zookeeper技术博客:
http://nileader.blog.51cto.com/1381108/d-16
○ SolrCloud分布式集群搭建
i. 解压 apache-tomcat-7.0.62.tar.gz ,解压部署后的目录为:/opt/SolrCloud/Tomcat/apache-tomcat-7.0.62
ii. 解压 solr-5.2.1.tgz ,并把solr.war解压到/opt/SolrCloud/Solr/solr 目录下。

      iii. 将 solr-5.2.1/server/lib/ext/ 目录下的jar包拷贝到 /opt/SolrCloud/Solr/solr/WEB-INF/lib/ 目录下。

cp /home/software/solr-5.2.1/server/lib/ext/*.jar /opt/SolrCloud/Solr/solr/WEB-INF/lib/
iv. 将 solr-5.2.1/server/solr/configsets/basic_configs/conf/ 目录下的文件拷贝到 /opt/SolrCloud/Solr/solr-config/

      v. 将 solr-5.2.1/example/files/conf/ 目录下的文件夹拷贝到 /opt/SolrCloud/Solr/solr-config/



      vi. 将 /opt/SolrCloud/Solr/solr 目录拷贝到 /opt/SolrCloud/Tomcat/apache-tomcat-7.0.62/webapps/ 目录下。



      vii. 将 solr-5.2.1/server/solr/ 目录下的solr.xml文件拷贝到 /apps/data/solr-cores/ 目录下,这是solr的核心配置文件。



      viii. 修改 /apps/data/solr-cores/  目录下的solr.xml,修改hostPort和Tomcat端口一致:

同步配置到其它机器:
scp /apps/data/solr-cores/solr.xml solr-cloud-slave1:/apps/data/solr-cores/
scp /apps/data/solr-cores/solr.xml solr-cloud-slave2:/apps/data/solr-cores/
ix. 在 /opt/SolrCloud/Tomcat/apache-tomcat-7.0.62/conf/ 目录下创建Catalina和localhost目录。
mkdir -p /opt/SolrCloud/Tomcat/apache-tomcat-7.0.62/conf/Catalina/localhost
x. 在 /opt/SolrCloud/Tomcat/apache-tomcat-7.0.62/conf/Catalina/localhost/ 目录下创建solr.xml,此为Solr/home的配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值