zoukankan      html  css  js  c++  java
  • Solrcloud单机伪集群部署

    线上有一套双节点的Solrcloud节点,因机器性能较老,环境搭建于2013年,原节点有数百个已经被unload的collections,考虑以后可能还会需要,所以搭建一套和原节点相同的solrcloud环境,因为目前只有一台新机器,所以在一台机器上搭建Solrcloud伪双节点集群,

    软件版本

    原节点环境信息

    主机名(IP) ec2d-cntprocdb-01(10.189.100.128) ec2d-cntprocdb-02(10.189.100.128)
    User tnuser
    JDK /usr/java/jdk1.6.0_12
    tomcat(port) /usr/local/apache-tomcat-6.0.20 (8983) /usr/local/apache-tomcat-6.0.20 (8983)
    zookeeper /usr/local/contentplatform/zookeeper-3.4.5 /usr/local/contentplatform/zookeeper-3.4.5
    solr(port) /usr/local/contentplatform/solr/solr /usr/local/contentplatform/solr/solr

    新节点的安装路径

    主机名(IP) ec2d-newcntprocdb-01(10.189.100.75)
    User tnuser
    JDK /usr/java/jdk1.6.0_12
    tomcat(port) /usr/local/apache-tomcat-6.0.20-8983 (8983) /usr/local/apache-tomcat-6.0.20-8984 (8984)
    Zookeeper /usr/local/contentplatform/zookeeper-3.4.5
    Solr(port) /usr/local/contentplatform/solr8983/solr (8983) /usr/local/contentplatform/solr8984/solr (8984)

    1. 系统参数修改

    1.1 内核参数

    $ tail -n 12 /etc/sysctl.conf
    vm.overcommit_memory=1
    vm.overcommit_ratio=90
    fs.aio-max-nr=1048576
    fs.file-max= 7672460
    net.ipv4.ip_local_port_range=9000 65500
    net.core.rmem_default=262144
    net.core.rmem_max=4194304
    net.core.wmem_default=262144
    net.core.wmem_max=1048586
    kernel.sem= 50100 64128000 50100 1280
    kernel.shmall=5242880
    kernel.shmmax=12884901888

    1.2. 资源使用

    $ tail -n 6 /etc/security/limits.conf 
    tnuser soft nproc 8192
    tnuser hard nproc 16384
    tnuser soft nofile 4096
    tnuser hard nofile 65536

     1.3. 环境变量

    $ cat ~/.bash_profile 
    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
        . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    JAVA_HOME=/usr/java/jdk1.6.0_12
    ZOOKEEPER_HOME=/usr/local/contentplatform/zookeeper-3.4.5
    JRE_HOME=$JAVA_HOME/jre
    CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib
    PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
    export PATH

     2. Zookeeper安装

    $ mkdir /usr/local/contentplatform
    $ cd /usr/local/contentplatform
    $ wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
    $ tar -zxf zookeeper-3.4.5.tar.gz
    $ mkdir zookeeper-3.4.5/data
    $ cat zookeeper-3.4.5/conf/zoo.cfg 
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/usr/local/contentplatform/zookeeper-3.4.5/data
    clientPort=9983
    $ zookeeper-3.4.5/bin/zkServer.sh start
    
    $ zookeeper-3.4.5/bin/zkServer.sh status
    JMX enabled by default
    Using config: /usr/local/contentplatform/zookeeper-3.4.5/bin/../conf/zoo.cfg
    Mode: standalone

    3. solr安装

    $ cd /usr/local/contentplatform
    $ wget https://archive.apache.org/dist/lucene/solr/4.2.1/solr-4.2.1.tgz
    $ tar -zxf solr-4.2.1.tgz
    $ mkdir {solr8983,solr8984}
    $ cp -r solr-4.2.1/example/* solr8983/
    $ cat solr8983/solr/solr.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <solr persistent="true">
      <cores defaultCoreName="tnpoi" adminPath="/admin/cores" zkClientTimeout="${zkClientTimeout:60000}" hostPort="8983" hostContext="solr">
        <core loadOnStartup="true" shard="shard1" instanceDir="tifbase/" transient="false" name="tnpoi"/>
      </cores>
    </solr>

    默认的collection为collection1,我将这里改成我实际的collection名tnpoi,注意hostPort的值一定要改成和第一个tomcat的端口号对应

    $ cp -r solr8983/* solr8984/
    $ cat solr8984/solr/solr.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <solr persistent="true">
      <cores defaultCoreName="tnpoi" adminPath="/admin/cores" zkClientTimeout="${zkClientTimeout:60000}" hostPort="8984" hostContext="solr">
        <core loadOnStartup="true" shard="shard2" instanceDir="tifbase/" transient="false" name="tnpoi"/>
      </cores>
    </solr>

    注意第二个solr的hostPort的值一定要改成和第二个tomcat的端口号对应

    4. tomcat安装

    $ cd /usr/local
    $ https://archive.apache.org/dist/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
    $ tar -zxf apache-tomcat-6.0.20.tar.gz
    $ mkdir {apache-tomcat-6.0.20-8983,apache-tomcat-6.0.20-8984}
    $ rm -rf apache-tomcat-6.0.20-8983/webapps/*
    $ unzip contentplatform/solr-4.2.1/example/webapps/solr.war -d apache-tomcat-6.0.20-8983/webapps/solr
    $ cp -r /usr/local/contentplatform/solr-4.2.1/dist/*.jar /usr/local/apache-tomcat-6.0.20-8983/webapps/solr/WEB-INF/lib/
    $ cp -r /usr/local/contentplatform/solr-4.2.1/contrib/velocity/lib/*.jar /usr/local/apache-tomcat-6.0.20-8983/webapps/solr/WEB-INF/lib/
    $ cp -r /usr/local/contentplatform/solr-4.2.1/contrib/extraction/lib/*.jar /usr/local/apache-tomcat-6.0.20-8983/webapps/solr/WEB-INF/lib/
    $ cp -r /usr/local/contentplatform/solr-4.2.1/example/lib/*.jar /usr/local/apache-tomcat-6.0.20-8983/webapps/solr/WEB-INF/lib/

    修改bin/catalina.sh文件

    sh /usr/local/apache-tomcat-6.0.20-8983/bin/createSymbolicConf.sh
    JAVA_HOME=/usr/java/jdk1.6.0_12/
    JAVA_OPTS="$JAVA_OPTS -Xms8000M -Xmx8000M -Duser.language=en -Duser.country=US -Dsolr.solr.home=/usr/local/contentplatform/solr8983/solr -DhostContext=solr -Dbootstrap_conf=true -Dhostport=8983 -DzkHost=ec2d-newcntprocdb-01:9983 -DnumShards=2"
    echo "Java Options: $JAVA_OPTS"

     createSymbolicConf.sh脚本为每次启动tomcat时添加成conf目录软连接到指定的collection下

    $ cat apache-tomcat-6.0.20-8983/bin/createSymbolicConf.sh 
    #!/bin/sh
    
    baseDir=/usr/local/contentplatform/solr8983/solr
    confDir=/usr/local/contentplatform/solr8983/solr/tifbase/conf
    for subDir in $baseDir/*
    do
    if [ !  -d $subDir/conf ] && [[ "$subDir" == *poi* ]] 
      then
        echo "$subDir don't have conf dir, creating symbolic link"                
        ln -sb $confDir $subDir/conf
      fi
    
    done

    修改conf/server.xml文件

    <?xml version='1.0' encoding='utf-8'?>
    <Server port="8005" shutdown="SHUTDOWN">
    
      
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      
      <Listener className="org.apache.catalina.core.JasperListener" />
      
      <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
    
      <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
      </GlobalNamingResources>
    
      <Service name="Catalina">
      
        
        
        
        <Connector port="8983" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" />
        
    
        
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    
    
    
        <Engine name="Catalina" defaultHost="localhost">
    
    
    
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                 resourceName="UserDatabase"/>
    
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
    
    
    
          </Host>
        </Engine>
      </Service>
      
    </Server>

    修改tomcat下的solr的web.xml文件

        <env-entry>
           <env-entry-name>solr/home</env-entry-name>
           <env-entry-value>/usr/local/contentplatform/solr8983/solr</env-entry-value>
           <env-entry-type>java.lang.String</env-entry-type>
        </env-entry>

    将tomcat目录复制一份为第二个tomcat目录

    $ cp -r apache-tomcat-6.0.20-8983/* apache-tomcat-6.0.20-8984/

    修改第二个tomcat下的bin/catalina.sh文件

    sh /usr/local/apache-tomcat-6.0.20-8984/bin/createSymbolicConf.sh
    JAVA_HOME=/usr/java/jdk1.6.0_12/
    JAVA_OPTS="$JAVA_OPTS -Xms8000M -Xmx8000M -Duser.language=en -Duser.country=US -Dsolr.solr.home=/usr/local/contentplatform/solr8984/solr -DhostContext=solr -Dbootstrap_conf=true -Dhostport=8984 -DzkHost=ec2d-newcntprocdb-01:9983 -DnumShards=2"
    echo "Java Options: $JAVA_OPTS"

    修改第二个tomcat的conf/server.xml文件

    <?xml version='1.0' encoding='utf-8'?>
    <Server port="8006" shutdown="SHUTDOWN">
    
      
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      
      <Listener className="org.apache.catalina.core.JasperListener" />
      
      <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
    
      <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
      </GlobalNamingResources>
    
      <Service name="Catalina">
      
        
        
        
        <Connector port="8984" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" />
        
    
        
        <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
    
    
    
        <Engine name="Catalina" defaultHost="localhost">
    
    
    
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                 resourceName="UserDatabase"/>
    
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
    
    
    
          </Host>
        </Engine>
      </Service>
      
    </Server>

    修改第二个tomcat下的solr的web.xml文件

        <env-entry>
           <env-entry-name>solr/home</env-entry-name>
           <env-entry-value>/usr/local/contentplatform/solr8984/solr</env-entry-value>
           <env-entry-type>java.lang.String</env-entry-type>
        </env-entry>

     依次启动第一个和第二个tomcat

    $ /usr/local/apache-tomcat-6.0.20-8983/bin/catalina.sh start
    $ /usr/local/apache-tomcat-6.0.20-8984/bin/catalina.sh start

     查看

    http://10.189.100.75:8983/solr/#/

    http://10.189.100.75:8984/solr/#/

     创建collection

    http://10.189.100.75:8983/solr/admin/collections?action=CREATE&name=poi_EDBSTORE&numShards=2&collection.configName=tnpoi

     

  • 相关阅读:
    P2420 让我们异或吧(倍增)
    bzoj题目分类
    hash练习们
    bzoj1433[ZJOI2009]假期的宿舍(匈牙利)
    bzoj2427:[HAOI2010]软件安装(Tarjan+tree_dp)
    bzoj2730矿场搭建(Tarjan割点)
    codevs4511信息传递(Tarjan求环)
    进入js
    css层叠样式表
    HTML超文本标记语言
  • 原文地址:https://www.cnblogs.com/ilifeilong/p/11330875.html
Copyright © 2011-2022 走看看