• SolrCloud搜索引擎集群搭建【伪分布式、完全分布式】


    一.SolrCloud简介 

      Apache Solr能够设置结合了容错能力和高可用性的Solr服务器集群。这些功能称为SolrCloud,其提供分布式索引和搜索功能,具有以下特点:

        1.集群的集中配置

        2.自动负载均衡和查询故障转移

        3.集成ZooKeeper用于集群协调和配置

      SolrCloud是灵活的分布式搜索和索引框架,无需主节点即可分配节点,分片和副本。 同时,Solr可以使用ZooKeeper来管理这些设置,具体取决于配置文件和设计模式。 Solr可以将文档发送到任何服务器节点,ZooKeeper会自动加载。

    二.SolrCloud伪分布式集群搭建

      SolrCloud旨在提供高度可用的容错环境,以便在多个服务器之间分配索引和查询请求。这是一个系统,其中数据被组织切分成多段或分片,可以托管在多台计算机上,副本提供冗余,以实现可伸缩性和容错能力; ZooKeeper服务器则可以帮助管理整体结构,以便进行索引和搜索请求可以正确路由。

      1.bin/solr脚本使您轻松入门SolrCloud,它引导您完成以云模式启动Solr节点并添加集合的过程。 要开始使用,只需执行以下操作:

      ./bin/solr -e cloud

      注意:root用户操作时需要加-force

      这将启动一个交互式会话,以引导您完成使用嵌入式ZooKeeper设置简单SolrCloud集群的步骤。 该脚本首先询问您要在本地集群中运行多少个Solr节点,默认值为2

      

      2.该脚本最多支持启动4个节点,但是建议在启动时使用默认值2。 这些节点将各自存在于单个计算机上,但是将使用不同的端口来模拟不同服务器上的操作。 接下来,脚本将提示您输入将每个Solr节点绑定到的端口

      

      3.为每个节点选择任何可用端口; 第一个节点的默认值是8983,第二个节点的默认值是7574。 该脚本将按顺序启动每个节点,并向您显示用于启动服务器的命令,例如:

    一直Enter直到创建完两个solr,若报如下错误:

    ERROR: Failed to start Solr using command: "/usr/local/soft/solrcloud/solr-7.7.2/bin/solr" start -cloud -p 8983 
    -s "/usr/local/soft/solrcloud/solr-7.7.2/example/cloud/node1/solr"
    Exception : org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)

      4.则设置节点的最大用户进程数,执行如下命令查看当前节点的默认最大用户进程数:

      

      5.修改配置文件/etc/security/limits.conf,添加如下配置:

      

      6.重新加载配置文件,查看修改后的最大用户进程数:

      

      7.重新执行solr脚本创建solrcloud,如下表示创建成功:

       

      8.第一个节点还将启动绑定到端口9983的嵌入式ZooKeeper服务器。第一个节点的Solr主目录位于example / cloud / node1 / solr中,如-s选项所示。

      

      9.指定shard的个数,默认

      

      10.启动集群中的所有节点后,脚本会提示您输入要创建的集合的名称:

      

      11.只能设置它提示的名称,默认为gettingstarted

      

      12.创建成功,前往登录

      

      13.查看集群节点及shard分片布局:

      

      14.执行查询

      

      15.Solr还提供了一种使用以下命令对集合执行基本诊断的方法healthcheck命令:

     1 [root@master bin]# ./solr healthcheck -c gettingstarted
     2 {
     3   "collection":"gettingstarted",
     4   "status":"healthy",
     5   "numDocs":0,
     6   "numShards":2,
     7   "shards":[
     8     {
     9       "shard":"shard1",
    10       "status":"healthy",
    11       "replicas":[
    12         {
    13           "name":"core_node3",
    14           "url":"http://192.168.136.7:8983/solr/gettingstarted_shard1_replica_n1/",
    15           "numDocs":0,
    16           "status":"active",
    17           "uptime":"0 days, 0 hours, 42 minutes, 45 seconds",
    18           "memory":"41.9 MB (%8.5) of 490.7 MB"},
    19         {
    20           "name":"core_node5",
    21           "url":"http://192.168.136.7:7574/solr/gettingstarted_shard1_replica_n2/",
    22           "numDocs":0,
    23           "status":"active",
    24           "uptime":"0 days, 0 hours, 42 minutes, 33 seconds",
    25           "memory":"69.9 MB (%14.2) of 490.7 MB",
    26           "leader":true}]},
    27     {
    28       "shard":"shard2",
    29       "status":"healthy",
    30       "replicas":[
    31         {
    32           "name":"core_node7",
    33           "url":"http://192.168.136.7:8983/solr/gettingstarted_shard2_replica_n4/",
    34           "numDocs":0,
    35           "status":"active",
    36           "uptime":"0 days, 0 hours, 42 minutes, 45 seconds",
    37           "memory":"42.5 MB (%8.7) of 490.7 MB"},
    38         {
    39           "name":"core_node8",
    40           "url":"http://192.168.136.7:7574/solr/gettingstarted_shard2_replica_n6/",
    41           "numDocs":0,
    42           "status":"active",
    43           "uptime":"0 days, 0 hours, 42 minutes, 33 seconds",
    44           "memory":"70.4 MB (%14.4) of 490.7 MB",
    45           "leader":true
    46         }]
    47     }]
    48 }

      16.healthcheck命令收集有关集合中每个副本的基本信息,例如文档数,当前状态(活动,关闭等)和地址(副本在群集中的位置)。要在SolrCloud模式下停止Solr,可以使用bin / solr脚本并发出stop命令,如下所示:

      $ bin/solr stop -all

    三.安装Zookeeper集群

      参考我的博客:https://www.cnblogs.com/yszd/p/10039249.html

    四.安装Tomcat集群

      1.上传tomcat8.5到三台机器的对应目录上

        

      2.分别配置tomcat中conf目录下的配置文件server.xml

        

        第一台机器上的tomcat:

     1 <!-- Note:  A "Server" is not itself a "Container", so you may not
     2      define subcomponents such as "Valves" at this level.
     3      Documentation at /docs/config/server.html
     4  -->
     22行 <Server port="8105" shutdown="SHUTDOWN">
     6     <!-- A "Connector" represents an endpoint by which requests are received
     7          and responses are returned. Documentation at :
     8          Java HTTP Connector: /docs/config/http.html
     9          Java AJP  Connector: /docs/config/ajp.html
    10          APR (HTTP/AJP) Connector: /docs/apr.html
    11          Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    12     -->
    69行     <Connector port="8180" protocol="HTTP/1.1"
    14                connectionTimeout="20000"
    15                redirectPort="8443" />
    16 
    17     <!-- Define an AJP 1.3 Connector on port 8009 -->
    116行     <Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />

         第二台机器上的tomcat:  

     1 <!-- Note:  A "Server" is not itself a "Container", so you may not
     2      define subcomponents such as "Valves" at this level.
     3      Documentation at /docs/config/server.html
     4  -->
     22行 <Server port="8205" shutdown="SHUTDOWN">
     6     <!-- A "Connector" represents an endpoint by which requests are received
     7          and responses are returned. Documentation at :
     8          Java HTTP Connector: /docs/config/http.html
     9          Java AJP  Connector: /docs/config/ajp.html
    10          APR (HTTP/AJP) Connector: /docs/apr.html
    11          Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    12     -->
    69行     <Connector port="8280" protocol="HTTP/1.1"
    14                connectionTimeout="20000"
    15                redirectPort="8443" />
    16 
    17     <!-- Define an AJP 1.3 Connector on port 8009 -->
    116行     <Connector port="8209" protocol="AJP/1.3" redirectPort="8443" />

        第三台机器上的tomcat:

     1 <!-- Note:  A "Server" is not itself a "Container", so you may not
     2      define subcomponents such as "Valves" at this level.
     3      Documentation at /docs/config/server.html
     4  -->
     22行 <Server port="8305" shutdown="SHUTDOWN">
     6     <!-- A "Connector" represents an endpoint by which requests are received
     7          and responses are returned. Documentation at :
     8          Java HTTP Connector: /docs/config/http.html
     9          Java AJP  Connector: /docs/config/ajp.html
    10          APR (HTTP/AJP) Connector: /docs/apr.html
    11          Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    12     -->
    69行     <Connector port="8380" protocol="HTTP/1.1"
    14                connectionTimeout="20000"
    15                redirectPort="8443" />
    16 
    17     <!-- Define an AJP 1.3 Connector on port 8009 -->
    116行     <Connector port="8309" protocol="AJP/1.3" redirectPort="8443" />

      3.配置tomcat节点关联zookeeper集群

        配置三台机器上的tomcat/bin目录下的catalina.sh文件,配置如下:

        

    五.配置SolrCloud完全分布式集群

      1. 上传solr7.7.2到三台机器上的目录/usr/local/soft/solrcloud/下:

        

      2. 配置三台机器上的solr-7.7.2/server/solr/solr.xml文件

        

      3. 指定各个节点tomcat启动solr的路径,修改tomcat/conf/web.xml文件

         

    六.访问solrcloud集群

      1. 启动tomcat集群

        

        依次在三台机器上执行命令:./startup.sh 启动tomcat

      2.访问solrcloud集群

        打开浏览器,输入:http://master:8180/solr/index.html#/~cloud

           

        表示搭建成功!

      3. 配置文件简介

        

    七. 操作SolrCloud

      1. 创建collection

        执行命令:

        http://bg-demo-01.haiyi.com:8180/solr/admin/collections?action=CREATE&name=fxk_collection&numShards=2&replicationFactor=2&collection.configName=fxk&maxShardsPerNode=2

      2. 删除collection

        执行命令:

        http://bg-demo-01.haiyi.com:8180/solr/admin/collections?action=DELETE&name=fxk

      3. 创建索引

        

      4.搜索

        

  • 相关阅读:
    Mysql之修改mysql的视图定义者
    JQ对页面中某个DIV的大小变化进行监听拓展
    php网站性能优化
    nginx媒体服务器搭建
    windows配置多用户远程登录
    Tunnel Warfare HDU 1540
    好迷茫
    nginx部署vue前端项目实操(node安装,及安装vuecli/vue脚手架)
    .NET 基础
    docker 安装gitlab及配置cicd
  • 原文地址:https://www.cnblogs.com/yszd/p/9984277.html
Copyright © 2020-2023  润新知