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放到目录                                                                                             

posted @ 2022-06-10 11:46  奋斗史  阅读(186)  评论(0)    收藏  举报