本文介绍在 Tomcat 上部署 SolrCloud 集群的完整过程。
环境规划
SolrCloud 服务器
- s1.solr.com
- s2.solr.com
- s3.solr.com
Zookeeper 服务器
- z1.com
- z2.com
- z3.com
默认安装目录: /home/myuser
第一步:启动 Zookeeper 集群
按照顺序启动 z1.com, z2.com, z3.com
1. 下载 Zookeeper
从 http://hadoop.apache.org/zookeeper/releases.html 下载 zookeeper
2. 解压缩 Zookeeper
1 | tar -xf zookeeper-*.tar.gz -C /home/myuser/zookeeper/ |
3. 编辑 Zookeeper 配置文件
编辑 /home/myuser/zookeeper/conf/zoo.cfg
:
1 | # The number of milliseconds of each tick |
4. 为每个服务器建立 ID 文件
为每个服务器在 data 目录建立一个 id 文件,配置合适的 id:
1 | # 在 z1.com 上 |
myid 文件用于标识 zookeeper 服务器。
5. 启动所有 Zookeeper 服务器
1 | cd /home/myuser/zookeeper/bin/ |
第二步:安装 SolrCloud
现在 zookeeper 集群已经准备好了,我们接下来安装 SolrCloud 服务器:s1.solr.com, s2.solr.com, s3.solr.com
1. 准备 Solr 文件
首先从一台 solr 服务器上加载配置文件
把 solr.war 放到 s1.solr.com 服务器
拷贝 solr.war 到 solr-war 目录:
1
cp solr.war /home/myuser/solr-war
解压 solr.war:
1
2cd /home/myuser/solr-war
jar xvf solr.war拷贝依赖库:
1
cp WEB-INF/lib/* /home/myuser/solr-war-lib/
把所有配置文件(例如 solrconfig.xml, schema.xml 等等)放到:
1
/home/myuser/solr-config/
2. 上传配置到 Zookeeper
用 solr zookeeper cli(zookeeper 客户端)上传配置文件到 zookeeper:
1 | java -classpath .:/home/myuser/solr-war-lib/* org.apache.solr.cloud.ZkCLI \ |
3. 建立 Solr 索引目录
1 | mkdir -p /home/myuser/solr-cores/ |
4. 创建 solr.xml 文件
在 solr-cores 里面建立 solr.xml 文件,内容如下:
1 |
|
5. 配置 Tomcat
设置 JVM 参数启动 Tomcat:
1
-DzkHost=z1.com:2181,z2.com:2181,z3.com:2181
部署 solr.war:
1
cp solr.war /home/myuser/tomcat/webapps/
然后重启 tomcat
编辑 context.xml:
编辑/home/myuser/tomcat/webapps/solr/META-INF/context.xml
文件并且重启 tomcat:1
2
3
4
5
<Context docBase="solr.war" debug="0" crossContext="false">
<Environment name="solr/home" type="java.lang.String"
value="/home/myuser/solr-cores" override="true"/>
</Context>
6. 创建 Collection
1 | curl 'http://s1.solr.com:8080/solr/admin/collections?action=CREATE&name=mycollection&numShards=3&replicationFactor=1' |
完成
至此,SolrCloud 集群部署完成。重复步骤 2 的 5-6 部分在其他服务器上完成整个集群的搭建。