超详细的solrCloud伪集群搭建手记 (在同一虚拟机上模拟集群环境)

来源:互联网 发布:vs打开数据库代码 编辑:程序博客网 时间:2024/05/29 03:41

一 环境
-系统/Linux-CentOS64位-版本6.5-桌面版
-虚拟机配置/1个CPU-4个核心-2G内存分配-20G硬盘-网络NAT模式
-jdk_7u55_64位
-tomcat_7.0.47 (4)
-zookeeper_3.4.6 (3)
-solr_4.10.3 (4) (分别发布到4个tomcat中)
-IKAnalyzer2012FF_hf1 (IK分词器)

二 具体操作
1,关闭防火墙 service iptables stop
2,永久生效 chkconfig iptables off
3,安装上传文件指令依赖 yum -y install lrzsz
4,上传文件 在~目录下
-创建文件夹 mkdir temp
-进入文件夹 cd temp
-上传文件 rz
-jdk-7u55-linux-x64.tar.gz
-apache-tomcat-7.0.47.tar.gz
-zookeeper-3.4.6.tar.gz
-solr-4.10.3.tgz.tgz
-IKAnalyzer2012FF_hf1

5,安装jdk    -查看openJdk rpm -qa|grep java    -卸载openJdk         rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64        rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64    -解压jdk安装包 tar -zxvf jdk-7u55-linux-x64.tar.gz    -创建jdk路径链接 ln -s /root/temp/jdk1.7.0_55/ /jdk    -配置环境变量 vim /etc/profile        -添加配置             export JAVA_HOME=/jdk            export PATH=$PATH:$JAVA_HOME/bin        -配置生效 source /etc/profile    -查看jdk版本 java -version6,搭建zookeeper集群(复制三份)    -解压缩 tar -zxvf zookeeper-3.4.6.tar.gz    -创建集群安装目录 mkdir /usr/local/solr-cloud    -将zookeeper移动到集群目录 mv /root/temp/zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper01    -进入zookeeper01 cd /usr/local/solr-cloud/zookeeper01    -创建data文件夹和myid文件        mkdir data        cd data        vi myid 编辑内容1作为zookeeper01实例的id    -修改配置文件        cd /usr/local/solr-cloud/zookeeper01/conf        mv zoo_sample.cfg ./zoo.cfg        vi zoo.cfg        编辑内容            dataDir=/usr/local/solr-cloud/zookeeper01/data            clientPort=2181        配置文件末尾加上            server.1=192.168.25.134:2881:3881            server.2=192.168.25.134:2882:3882            server.3=192.168.25.134:2883:3883    -复制zookeeper        cd /usr/local/solr-cloud        cp -r zookeeper01 ./zookeeper02        cp -r zookeeper01 ./zookeeper03    -修改各自配置        -zookeeper02            修改./data/myid文件内容                2            修改./conf/zoo.cfg文件内容                dataDir=/usr/local/solr-cloud/zookeeper02/data                clientPort=2182        -zookeeper03            修改./data/myid文件内容                3            修改./conf/zoo.cfg文件内容                dataDir=/usr/local/solr-cloud/zookeeper03/data                clientPort=2183    -创建启动批处理文件        cd /usr/local/solr-cloud        vi start-all-zookeeper.sh        文件内容            /usr/local/solr-cloud/zookeeper01/bin/zkServer.sh start            /usr/local/solr-cloud/zookeeper02/bin/zkServer.sh start            /usr/local/solr-cloud/zookeeper03/bin/zkServer.sh start        开启权限 chmod u+x start-all-zookeeper.sh    -启动,查看状态        /usr/local/solr-cloud/start-all-zookeeper.sh        /usr/local/solr-cloud/zookeeper01/bin/zkServer.sh status        /usr/local/solr-cloud/zookeeper02/bin/zkServer.sh status        /usr/local/solr-cloud/zookeeper03/bin/zkServer.sh status7,搭建solr集群    (1)发布单个solr服务        -进入压缩包所在目录 cd /root/temp        -解压tomcat             tar -zxvf apache-tomcat-7.0.47.tar.gz        -解压solr             tar -zxvf solr-4.10.3.tgz.tgz        -复制solr的war包到tomcat            cp /root/temp/solr-4.10.3/dist/solr-4.10.3.war /root/temp/apache-tomcat-7.0.47/webapps/solr.war        -启动tomcat解压缩war包            /root/temp/apache-tomcat-7.0.47/bin/startup.sh        -关闭tomcat /root/temp/apache-tomcat-7.0.47/bin/shutdown.sh        -修改solr配置            cp -r /root/temp/solr-4.10.3/example/lib/ext/* /root/temp/apache-tomcat-7.0.47/webapps/solr/WEB-INF/lib/            cp /root/temp/IKAnalyzer2012FF_hf1/IKAnalyzer2012FF_u1.jar /root/temp/apache-tomcat-7.0.47/webapps/solr/WEB-INF/lib/            cd /root/temp/apache-tomcat-7.0.47/webapps/solr/WEB-INF/            mkdir classes            cp /root/temp/IKAnalyzer2012FF_hf1/ext_stopword.dic /root/temp/apache-tomcat-7.0.47/webapps/solr/WEB-INF/classes/            cp /root/temp/IKAnalyzer2012FF_hf1/IKAnalyzer.cfg.xml /root/temp/apache-tomcat-7.0.47/webapps/solr/WEB-INF/classes/            cp /root/temp/IKAnalyzer2012FF_hf1/mydict.dic /root/temp/apache-tomcat-7.0.47/webapps/solr/WEB-INF/classes/        -移除war包            cd /root/temp/apache-tomcat-7.0.47/webapps            mv solr.war    (2)搭建集群        cp -r /root/temp/apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat01        cp -r /root/temp/apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat02        cp -r /root/temp/apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat03        cp -r /root/temp/apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat04        cp -r /root/temp/solr-4.10.3/example/solr /usr/local/solr-cloud/solrhome01        -设置搜索域            vi /usr/local/solr-cloud/solrhome01/collection1/conf/schema.xml            在最后添加内容                <fieldType name="text_ik" class="solr.TextField">                    <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>                </fieldType>                <field name="item_title" type="text_ik" indexed="true" stored="true"/>                <field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>                <field name="item_price"  type="long" indexed="true" stored="true"/>                <field name="item_image" type="string" indexed="false" stored="true" />                <field name="item_category_name" type="string" indexed="true" stored="true" />                <field name="item_desc" type="text_ik" indexed="true" stored="false" />                <field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>                <copyField source="item_title" dest="item_keywords"/>                <copyField source="item_sell_point" dest="item_keywords"/>                <copyField source="item_category_name" dest="item_keywords"/>                <copyField source="item_desc" dest="item_keywords"/>        -复制solrhome             cp -r /usr/local/solr-cloud/solrhome01 /usr/local/solr-cloud/solrhome02            cp -r /usr/local/solr-cloud/solrhome01 /usr/local/solr-cloud/solrhome03            cp -r /usr/local/solr-cloud/solrhome01 /usr/local/solr-cloud/solrhome04    (3)修改配置        (a) tomcat01和solrhome01            vi /usr/local/solr-cloud/tomcat01/webapps/solr/WEB-INF/web.xml                编辑内容                    <env-entry>                       <env-entry-name>solr/home</env-entry-name>                       <env-entry-value>/usr/local/solr-cloud/solrhome01/</env-entry-value>                       <env-entry-type>java.lang.String</env-entry-type>                    </env-entry>            vi /usr/local/solr-cloud/tomcat01/conf/server.xml                修改端口                     启动端口 8180                    关闭端口 8105                    AJP 1.3连接端口 8109            vi /usr/local/solr-cloud/tomcat01/bin/catalina.sh                编辑内容(注意位置)                    JAVA_OPTS="-DzkHost=192.168.25.134:2181,192.168.25.134:2182,192.168.25.134:2183"            vi /usr/local/solr-cloud/solrhome01/solr.xml                编辑内容                    <solrcloud>                        <str name="host">192.168.25.134</str>                        <int name="hostPort">8180</int>                        <str name="hostContext">${hostContext:solr}</str>                        <int name="zkClientTimeout">${zkClientTimeout:30000}</int>                        <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>                      </solrcloud>        (b) tomcat02和solrhome02            vi /usr/local/solr-cloud/tomcat02/webapps/solr/WEB-INF/web.xml                编辑内容                    <env-entry>                       <env-entry-name>solr/home</env-entry-name>                       <env-entry-value>/usr/local/solr-cloud/solrhome02/</env-entry-value>                       <env-entry-type>java.lang.String</env-entry-type>                    </env-entry>            vi /usr/local/solr-cloud/tomcat02/conf/server.xml                修改端口                     启动端口 8280                    关闭端口 8205                    AJP 1.3连接端口 8209            vi /usr/local/solr-cloud/tomcat02/bin/catalina.sh                编辑内容(注意位置)                    JAVA_OPTS="-DzkHost=192.168.25.134:2181,192.168.25.134:2182,192.168.25.134:2183"            vi /usr/local/solr-cloud/solrhome02/solr.xml                编辑内容                    <solrcloud>                        <str name="host">192.168.25.134</str>                        <int name="hostPort">8280</int>                        <str name="hostContext">${hostContext:solr}</str>                        <int name="zkClientTimeout">${zkClientTimeout:30000}</int>                        <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>                      </solrcloud>        (c) tomcat03和solrhome03            vi /usr/local/solr-cloud/tomcat03/webapps/solr/WEB-INF/web.xml                编辑内容                    <env-entry>                       <env-entry-name>solr/home</env-entry-name>                       <env-entry-value>/usr/local/solr-cloud/solrhome03/</env-entry-value>                       <env-entry-type>java.lang.String</env-entry-type>                    </env-entry>            vi /usr/local/solr-cloud/tomcat03/conf/server.xml                修改端口                     启动端口 8380                    关闭端口 8305                    AJP 1.3连接端口 8309            vi /usr/local/solr-cloud/tomcat03/bin/catalina.sh                编辑内容(注意位置)                    JAVA_OPTS="-DzkHost=192.168.25.134:2181,192.168.25.134:2182,192.168.25.134:2183"            vi /usr/local/solr-cloud/solrhome03/solr.xml                编辑内容                    <solrcloud>                        <str name="host">192.168.25.134</str>                        <int name="hostPort">8380</int>                        <str name="hostContext">${hostContext:solr}</str>                        <int name="zkClientTimeout">${zkClientTimeout:30000}</int>                        <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>                      </solrcloud>        (d) tomcat04和solrhome04            vi /usr/local/solr-cloud/tomcat04/webapps/solr/WEB-INF/web.xml                编辑内容                    <env-entry>                       <env-entry-name>solr/home</env-entry-name>                       <env-entry-value>/usr/local/solr-cloud/solrhome04/</env-entry-value>                       <env-entry-type>java.lang.String</env-entry-type>                    </env-entry>            vi /usr/local/solr-cloud/tomcat04/conf/server.xml                修改端口                     启动端口 8480                    关闭端口 8405                    AJP 1.3连接端口 8409            vi /usr/local/solr-cloud/tomcat04/bin/catalina.sh                编辑内容(注意位置)                    JAVA_OPTS="-DzkHost=192.168.25.134:2181,192.168.25.134:2182,192.168.25.134:2183"            vi /usr/local/solr-cloud/solrhome04/solr.xml                编辑内容                    <solrcloud>                        <str name="host">192.168.25.134</str>                        <int name="hostPort">8480</int>                        <str name="hostContext">${hostContext:solr}</str>                        <int name="zkClientTimeout">${zkClientTimeout:30000}</int>                        <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>                      </solrcloud>    (4)zookeeper统一管理solr配置        -进入zkcli.sh所在目录            cd /root/temp/solr-4.10.3/example/scripts/cloud-scripts        -执行zkcli.sh上传配置            ./zkcli.sh -zkhost 192.168.25.134:2181,192.168.25.134:2182,192.168.25.134:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf    (5)创建tomcat启动批处理文件        -进入目录            cd /usr/local/solr-cloud        -创建文件            vi start-all-tomcat.sh                编辑内容                    /usr/local/solr-cloud/tomcat01/bin/startup.sh                    /usr/local/solr-cloud/tomcat02/bin/startup.sh                    /usr/local/solr-cloud/tomcat03/bin/startup.sh                    /usr/local/solr-cloud/tomcat04/bin/startup.sh        -设置权限            chmod u+x start-all-tomcat.sh        -启动tomcat            /usr/local/solr-cloud/start-all-tomcat.sh    (6)待所有tomcat启动完成后在浏览器访问        http://192.168.25.134:8180/solr/    (7)创建新的collection2并分片处理        http://192.168.25.134:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2    (8)删除原有collection1        http://192.168.25.134:8180/solr/admin/collections?action=DELETE&name=collection1