Solr之SolrCloud安装
1. 在Tomcat容器下搭建solrcloud集群
1. 在另外一篇文章《solr安装与配置》的基础上,复制zoo.cfg文件到solrhome目录下,然后启动tomcat。
cp -a /root/solr/server/solr/zoo.cfg /var/solr/
2. 分别在三台服务器启动tomcat
/usr/local/tomcat-solr/bin/startup.sh
3. 修改三台服务器的catalina.sh文件,添加以下内容
JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=256M -XX:MaxPermSize=256m -Dbootstrap_conf=true"
-Dbootstrap_conf=true 表示solr会自动将${SOLR_HOME}下所有core的配置文件上传Zookeeper.
4. 修改solr_home下的solr.xml文件中的端口号为tomcat的端口号
<int name="hostPort">${jetty.port:8080}</int>
<str name="zkHost">172.16.1.228:2181,172.16.1.229:2181,172.16.1.230:2181/dev-zhenpin</str>
5. 启动对应的zookeeper服务
6. 在solrhome创建collection
mkdir -p /var/solr/data/zhenpin
7. 在collection目录下创建conf和data目录
mkdir conf data
8. 将solr安装包的文件拷贝到collection的conf目录下
cp -a /root/solr/server/solr/configsets/basic_configs/conf/* /var/solr/data/zhenpin/conf/
9. 修改schema.xml文件,添加对应的域
<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/> <field name="userName" type="string" multiValued="false" indexed="true" stored="true"/> <field name="sex" type="boolean" multiValued="false" indexed="true" stored="true"/> <field name="birth" type="tdate" multiValued="false" indexed="true" stored="true"/> <field name="salary" type="int" multiValued="false" indexed="true" stored="true"/>
10. 上传conf下所有文件到zookeeper
/root/solr/bin/solr zk -upconfig -d /var/solr/data/zhenpin/conf/ -n zhenpin -z 172.16.1.228:2181,172.16.1.229:2181,172.16.1.230:2181/dev-zhenpin
11. 从zookeeper下载文件到本地目录
/root/solr/bin/solr zk -downconfig -d /var/solr/data/zhenpin/ -n zhenpin -z 172.16.1.228:2181,172.16.1.229:2181,172.16.1.230:2181/dev-zhenpin
2. 添加一个collection的过程
1. 通过管理页面添加

2. 因为配置文件schema.xml和solrconfig.xml还没有上传到zookeeper上,所以报错了。创建schema.xml和solrconfig.xml文件。
3. 执行上传命令
/root/solr/bin/solr zk -upconfig -d /var/solr/data/milanyi/conf/ -n milanyi -z 172.16.1.228:2181,172.16.1.229:2181,172.16.1.230:2181/dev-zhenpin
4. 在集群内的所有服务器的/var/solr/data/milanyi目录下,创建一个文件core.properties,内容如下:
name=milanyi config=solrconfig.xml schema=schema.xml shard=milanyi dataDir=data collection=milanyi coreNodeName=core_node3
5. 重启tomcat
2. 使用自带的jetty搭建solr集群
1. 使用install_solr_service.sh进行安装,支持的参数
-d 用来配置solr的日志,pid文件,索引数据等文件的目录,默认为/var/solr
-i 用来配置solr解压后的安装目录,默认为/opt
-p 配置solr服务的端口号,默认为8983
-s 配置solr服务的名称,访问solr: http://ip:8983/solr,这里的solr即solr服务名称,默认值是solr
-u 指定运行solr服务的用户名,默认为solr用户,如果用户不存在,会自动创建
-f 用于配置solr升级
注意:该脚本必须用root执行
2. 创建solrhome
mkdir -p /opt/solr/{logs,pid}
3. 复制solr.xml文件到solr_home目录下
cp /root/solr/example/example-DIH/solr/solr.xml /opt/solr/
4. 编辑solr.xml文件,内容如下
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<solr>
<solrcloud>
<str name="host">${host:}</str>
<int name="hostPort">${jetty.port:8983}</int>
<str name="hostContext">${hostContext:solr}</str>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
<int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
<int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:600000}</int>
<int name="connTimeout">${connTimeout:60000}</int>
</shardHandlerFactory>
</solr>
5. 复制solr.in.sh文件到solrhome目录下
cp -a /root/solr/bin/solr.in.sh /opt/solr/
6. 修改solr.in.sh
SOLR_JAVA_HOME="/usr/local/java" SOLR_JAVA_MEM="-Xms512m -Xmx1024m" SOLR_HOST="172.16.1.228" SOLR_TIMEZONE="Asia/Shanghai" ENABLE_REMOTE_JMX_OPTS="false" SOLR_OPTS="$SOLR_OPTS -Dsolr.clustering.enabled=true -Dbootstrap_conf=true" SOLR_HOME="/opt/solr/data" LOG4J_PROPS="/opt/solr/log4j.properties" SOLR_LOGS_DIR="/opt/solr/logs" SOLR_PORT="8983" SOLR_PID_DIR="/opt/solr/pid" ZK_HOST="172.16.1.228:2181,172.16.1.229:2181,172.16.1.230:2181/kaifa-zhenpin" ZK_CLIENT_TIMEOUT="30000" SOLR_HEAP="512m" SOLR_OPTS="$SOLR_OPTS -Xss256k" RMI_PORT=18983
7. 执行安装命令
/root/solr/bin/install_solr_service.sh /root/solr-5.5.2.zip -d /opt/solr/ -i /usr/local/solrcloud -p 8983 -s solr -u zpsolr
8. 其它节点都分别执行安装命令
9. 配置log4j.properties文件
solr.log=/opt/solr/logs
10. 管理solr服务
service solr stop
service solr start
service solr restart
service solr status
11. 拷贝solr-dataimporthandler-5.5.2.jar到/usr/local/solr/solr/server/solr-webapp/webapp/WEB-INF/lib目录下
cp /root/solr/dist/solr-dataimporthandler-5.5.2.jar /usr/local/solr/solr/server/solr-webapp/webapp/WEB-INF/lib/
12. 上传配置文件到zookeeper
/root/solr/bin/solr zk -upconfig -d /opt/solr/data/zhenpin/conf/ -n kaifa-zhenpin -z 172.16.1.228:2181,172.16.1.229:2181,172.16.1.230:2181/kaifa-zhenpin
13. 从mysql全量导入数据
将mysql-connector-java-5.1.39-bin.jar放到目录

浙公网安备 33010602011771号