• solr集群SolrCloud(solr+zookeeper)windows搭建


     

    SolrCloud是什么

    参考 solrCloud官网介绍 http://lucene.apache.org/solr/guide/6_6/solrcloud.html

    Apache Solr 可以设置solr集群,并且有容错性和高可用性能力,这被称为SolrCloud,它的功能是提供分布式索引和搜索,支持以下功能:

    • 集中式的中央配置

    • 自动负载平衡和故障切换

    • ZooKeeper集成,用于集群协调和配置。

    SolrCloud是灵活的分布式搜索和索引,没有主节点分配节点,分片和副本。相反,Solr使用ZooKeeper来管理这些位置,具体取决于配置文件和模式。查询和更新可以发送到任何服务器。Solr将使用ZooKeeper数据库中的信息来确定哪些服务器需要处理请求。

    SolrCloud结构图

    因为集中配置、协调,所以需要zookeeper。

    zookeeper的集群安装 

    安装3个zk服务器做集群 localhost:2181,localhost:2182,localhost:2183。

    安装zk,参考 http://www.cnblogs.com/yangzhenlong/p/8270835.html

    安装好后启动3个zk

    solrCloud安装

    下载solr http://mirrors.shu.edu.cn/apache/lucene/solr/

    下载后解压,命名为solr-1,进入 solr-1in 目录

    需要做3个操作

    1.配置zookeeper服务

    修改solr.in.cmd

    REM set ZK_HOST= 替换为(这里是zookeeper服务地址:端口,中间用逗号隔开)

    set ZK_HOST=localhost:2181,localhost:2182,localhost:2183

    REM set ZK_CLIENT_TIMEOUT=15000替换为

    set ZK_CLIENT_TIMEOUT=15000

    2.配置solr端口

    修改solr.cmd,编辑文件,搜索 SOLR_PORT=8983

    将端口改为8981

    编辑好以后,将solr-1文件夹复制3分,分别命名为 solr-2,solr-3,solr-4

    然后分别修改对应的solr.cmd文件,设置端口为 8982,8983,,8984

     3.上传solr的core配置到zookeeper

    因为需要让zk统一治理solr,所以需要让zk管理solr的配置信息。

    进入solr-1serverscriptscloud-scripts 目录,看到有zk的客户端指令文件

    现在需要将solr-1serversolrconfigsetsasic_configsconf 里的所有配置都上传到zk服务上,执行命令:

    zkcli.bat -zkhost zk1:port,zk2:port... -cmd upconfig -confdir solr的conf目录 -confname solrconf

    例如:

    zkcli.bat -zkhost localhost:2181,localhost:2182,localhost:2183 -cmd upconfig -confdir D:develop-envsolr-clustersolr-1serversolrconfigsetsasic_configsconf -confname solrconf

    上传以后,查看是否成功,用zk客户端连接到任意一个zk服务器,查看 根路径

    zkCli.cmd -server localhost:2181

    ls /

    ls /configs

    如果有我们前面命名的 solrconf,说明上传成功

     启动solr

    设置好以后,用cmd先进入solr-1的bin目录,执行命令 ,然后分别进入 solr-2/bin solr-3/bin solr-4/bin,同样执行下面命令:

    solr start

    然后访问地址 http://localhost:8981/ (或8982 8983 8984)

    创建solr core 

    新建一个core,在config set选项中,能看到上传的solr配置

    选择solrconf配置,numShards 和replicationFact 都填4,添加添加按钮,会提示错误:

     最后一句说需要 4*4=16个分片,超出了允许的值。规则是 numShards数量 * replicationFact数量 <= solrCloud中solr服务的数量

    numShards 和replicationFact 分别填 1 1 创建 core1

    numShards 和replicationFact 分别填 4 1 创建 core1

    numShards 和replicationFact 分别填 1 4 创建 core1

    numShards 和replicationFact 分别填 2 2 创建 core1

    然后查看 Cloud

    黑色选中的是zk选举出来的leader 

    访问其他solr,效果一样

  • 相关阅读:
    java中sleep()和wait()区别
    那些年遇到的坑--------“集合转数组”
    HashMap中推荐使用entrySet方式遍历Map类集合KV而不是keySet方式遍历
    java.util.ConcurrentModificationException 异常原因和解决方法
    java.lang.Exception: No tests found matching
    https和http的主要区别
    交换性别sql
    判断奇偶数
    Jmeter安装使用
    java.io.EOFException: Unexpected EOF read on the socket
  • 原文地址:https://www.cnblogs.com/yangzhenlong/p/8280700.html
Copyright © 2020-2023  润新知