一 单机多实例&多台机器
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_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)
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);
}
- 命令方式(这个 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
- 不建议使用 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
网友评论