solr 7.6.0 cloud 部署

一 单机多实例&多台机器

1. 下载solr-7.6.0 并复制成两个文件夹(node)

  • node8983 : solr-7.6.0-8983
  • node8984 : solr-7.6.0-8984

2. 改 solr.in.sh 文件 (windows 为 solr.in.cmd 文件)

8983 node
RMI_PORT=18983           --可以不用改 默认的SOLR_PORT+10000
SOLR_PORT=8983           --可以不用改 默认的为8983
ZK_HOST=127.0.0.1:2181
8984 node
RMI_PORT=18984   --可以不用改 默认的 SOLR_PORT+10000
SOLR_PORT=8984 
ZK_HOST=127.0.0.1:2181

3. 分别启动solr 用cloud的方式

bin/solr start -cloud

4. 创建 collection 并指定 shards replicas

bin/solr create -c your_collection_name -s 2 -rf 2

5. 如果用到zookeeper的chroot(强烈建议使用 除非你的zk只提供给solr使用) 需要到zk上新建节点

  • solr不支持新建zk节点 这真要吐槽下
  • zk自带命令 登入到zk 新建节点 例如为solr
zk_home/bin/zkCli.sh  -server 127.0.0.1:2181
create /solr  "solr"  ---第二个solr为任意 第一个solr为chroot 
--- 删除为 delete /solr
  • solr自带命令
solr_home/server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:2181 -cmd makepath /solr
--- 删除为 -cmd clear /solr
  • solr.in.sh 文件要改成 配置文件上都有注释的说明
ZK_HOST=127.0.0.1:2181/solr

6. 上传(or下载)配置文件到zk(solrconfig.xml,managed-schema)

    1. 代码方式
    public static void download() throws Exception {
        CuratorFramework client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", new RetryNTimes(2, 500));
        client.start();
        byte[] data = client.getData().forPath("/solr/configs/product/solrconfig.xml");

        FileUtils.writeByteArrayToFile(new File("C:\\Users\\xyz\\Desktop\\xx\\x.xml"), data);
        client.close();
        System.out.println("download success");
    }

    public static void upload() throws Exception {
        CuratorFramework client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", new RetryNTimes(2, 500));
        client.start();

        byte[] data = FileUtils.readFileToByteArray(new File("C:\\Users\\xyz\\Desktop\\xx\\x.xml"));
        Stat stat = client.setData().forPath("/solr/configs/product/solrconfig.xml", data);

        client.close();
        System.out.println("upload success " + stat);
    }
    1. 命令方式(这个 zkcli.sh 命令调用的是 org.apache.solr.cloud.ZkCLI 这个类) 两个路径都是绝对路径
  • solr 自带命令
solr_home/server/scripts/cloud-scripts/zkcli -zkhost 127.0.0.1:2181 -cmd putfile /solr/configs/product/solrconfig.xml  C:\Users\xyz\Desktop\solrfile\solrconfig.xml
    1. 不建议使用 zkcli -cmd upconfig 这个命令 因为我们改过chroot 而upconfig上传到zk上是没有chroot的 upconfig在zk上使用的是相对路径

7. reload collection (不行的话 重启solr把)

http://127.0.0.1:8983/solr/admin/collections?action=RELOAD&name=collection_name

二 单机单实例

参考solr官方quickstart

https://lucene.apache.org/solr/guide/7_6/solrcloud.html

猜你喜欢

转载自blog.csdn.net/weixin_33724059/article/details/87013485