zoukankan      html  css  js  c++  java
  • solr集群solrCloud的搭建

    solr集群solrCloud的搭建

     上一章讲了solr单机版的搭建,本章将讲解sole集群的搭建。solr集群的搭建需要使用到zookeeper,搭建参见zookeeper集群的安装

    一、solr实例的搭建

    1. tomcat安装

       这里我们需要4个tomcat,分别是tomcat1,2,3,4

      

      同时修改tomcat1,2,3,4的端口为8080-8083。保证两个tomcat可以正常运行不发生端口冲突。

    2.解压solr-4.10.3.tar.gz压缩包。从压缩包中复制/solr-4.10.3/dist/solr-4.10.3.war到tomcat1,并重命名为solr.war。

     

      

    3.启动tomcat,解压solr.war。解压成功后关闭tomcat,删除solr.war

    4.将solr日志相关的jar包拷贝到解压的solr项目的lib包中

      

    5.创建solrhome文件

      这里直接拷贝单机版中创建的solrhome

    6.修改tomcat1-4中的solr的web.xml对应的env-entry-value值为/usr/local/solrcloud/solrhome1-4,指定对应的solrhome

      

    7.其他的配置参见solr单机版的搭建

     二、solr集群的搭建

      1.把solrhome中的配置文件上传到zookeeper集群。使用zookeeper的客户端上传。

        使用solr安装包中的/opt/mysoft/solr-4.10.3/example/scripts/cloud-scripts中的zkcli.sh

      

      运行命令

    ./zkcli.sh -zkhost 192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf -confname myconf

      查看运行是否成功,使用zookeeper中的脚本

    2.修改solrhome1-4下的solr.xml文件,指定当前实例运行的ip地址及端口号8080-8083。

     

    3.修改每一台solr的tomcat 的 bin目录下catalina.sh文件中加入DzkHost指定zookeeper服务器地址:

    JAVA_OPTS="-DzkHost=192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183"

    4.重启tomcat

     查看运行结果

    5.创建一个两片的collection,每片是一主一备

    http://192.168.198.130:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2  

    回到主界面查看

    6.删除collection1

    http://192.168.198.130:8080//solr/admin/collections?action=DELETE&name=collection1

    查看主界面

    三、java测试代码

    复制代码
    @Test
        public void testAddDocument() throws Exception {
            //创建一个和solr集群的连接
            //参数就是zookeeper的地址列表,使用逗号分隔
            String zkHost = "192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183";
            CloudSolrServer solrServer = new CloudSolrServer(zkHost);
            //设置默认的collection
            solrServer.setDefaultCollection("collection2");
            //创建一个文档对象
            SolrInputDocument document = new SolrInputDocument();
            //向文档中添加域
            document.addField("id", "test001");
            document.addField("item_title", "测试商品");
            //把文档添加到索引库
            solrServer.add(document);
            //提交
            solrServer.commit();
        }
        
        @Test
        public void queryDocument() throws Exception{
            //创建一个和solr集群的连接
            //参数就是zookeeper的地址列表,使用逗号分隔
            String zkHost = "192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183";
            CloudSolrServer solrServer = new CloudSolrServer(zkHost);
            //设置默认的collection
            solrServer.setDefaultCollection("collection2");        
            solrServer.deleteByQuery("*:*");
            solrServer.commit();
        }
        
    复制代码

    四、spring集成

    <bean id="cloudSolrServer" class="org.apache.solr.client.solrj.impl.CloudSolrServer"> 
            <constructor-arg name="zkHost" value="192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183"></constructor-arg> 
            <property name="defaultCollection" value="collection2"></property>
    </bean>

    java代码使用方法不变,因为SolrServer是CloudSolrServer的父类

     
    分类: java服务器
  • 相关阅读:
    97. Interleaving String
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    94. Binary Tree Inorder Traversal
    odoo many2many字段 指定打开的form视图
    docker sentry 配置文件位置
    postgres 计算时差
    postgres 字符操作补位,字符切割
    postgres判断字符串是否为时间,数字
    odoo fields_view_get
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5319400.html
Copyright © 2011-2022 走看看