프로덕션을 위한 SolrCloud 설정

이 작업을 시작했을 때 SolrCloud에 익숙하지 않았습니다. 내가 그것을 배우기 시작하고 그것으로 직접 작업했을 때 나는 많은 실수를 저질렀습니다. 생산을 위해 SolrCloud를 설정하는 것조차 저에게는 번거로운 일이었습니다(저는 느린 학습자입니다). 하지만 시간이 지나면서 요령이 생겼고 프로덕션 서버에서 SolrCloud를 설정하기 위한 최신 가이드를 작성하는 것이 좋은 생각이라고 생각합니다.

공식 문서는 충분히 놀랍고 읽어야 합니다. 이 게시물은 매우 직설적입니다. 설명이 필요하고 더 알고 싶거나 배우고 싶다면 공식 문서를 참조하십시오.

시작하자.

(리눅스 서버 경험으로 이 가이드를 작성하고 있습니다)

설치 디렉토리로 쉽게 이동하기 위해 다음을 입력했습니다.bashrc.

export solr_home=/opt/solr
PATH=/opt/solr/bin:$PATH

export zookeeper_home=/opt/zookeeper
PATH=/opt/zookeeper/bin:$PATH

$ cd $zookeeper_home    # will take to /opt/zookeeper
$ cd $solr_home    # will take to /opt/solr


Note that, this solr_home and SOLR_HOME variable isn't same.



사육사



SolrCloud를 프로덕션 환경으로 가져오려면 중앙에서 구성 및 조정을 관리할 외부 사육사(내장형이 아님) 서버가 필요합니다. 우리는 3개의 서버로 작업할 것입니다. Zookeeper와 Apache Solr를 동일한 구성으로 모든 서버에 설치합니다.

먼저 Apache Zookeeper 을 구성해 보겠습니다. 공식 문서에 따라 원하는 Java 버전을 설치하십시오. 작성 당시 최신 Zookeeper 및 Solr - 둘 다 Java 11이 필요합니다.

$ sudo apt install openjdk-11-jdk

# check java version
$ java -version


공식 웹 사이트에서 최신 안정 버전을 다운로드하십시오. 소스(src) 번들이 아니라 바이너리(bin) 버전이 필요합니다.

설치 및 구성



루트에서 작업하는 것은 권장하지 않습니다. 그러나 나는 루트 사용자로 작업할 것입니다. 내 설치 디렉토리는 /opt 아래에 있습니다.

$ tar -xvf zookeeper-*.tar.gz -C /opt

$ ln -s /opt/zookeeper-* /opt/zookeeper

$zookeepr_home/conf/ 아래에 사육사를 위한 구성 파일을 만들어야 합니다. 파일 이름은 zoo.cfg입니다.

tickTime=2000
dataDir=/var/lib/zookeeper/data
dataLogDir=/var/lib/zookeeper/logs

clientPort=2181
4lw.commands.whitelist=mntr,conf,ruok

initLimit=5
syncLimit=2

# put IP addresses or host on the place of Server1, Server2, Server3
server.1=Server1:2888:3888
server.2=Server2:2888:3888
server.3=Server3:2888:3888

autopurge.snapRetainCount=3
autopurge.purgeInterval=1


우리는 zoo.cfg 아래에 있는 $zookeeper_home/conf 와 같은 위치에 사육사 환경 파일을 생성할 것입니다. 파일 이름은 zookeeper-env.sh입니다.

JAVA_HOME="/usr/lib/jvm/java-1.11.0-openjdk-amd64"
ZOO_LOG_DIR="/var/lib/zookeeper/logs"
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"

# increaseing the file size limit to 50MiB
JVMFLAGS="$JVMFLAGS -Djute.maxbuffer=50000000"


구성에 정의된 디렉터리를 만듭니다.

mkdir -p /var/lib/zookeeper/data
mkdir -p /var/lib/zookeeper/logs

myid 디렉토리 아래에 /var/lib/zookeeper/data 텍스트 파일을 만듭니다. 한 줄로 해당 파일에 서버 ID를 입력하십시오. 서버 2의 경우 파일에 다음이 포함됩니다. 2
echo "2" >/var/lib/zookeeper/data/myid


이제 원할 때마다 사육사를 시작할 수 있지만 Solr보다 먼저 시작해야 합니다.

$ cd $zookeeper_home
$ bin/zkServer.sh start


아파치 솔라클라우드



서버에 최신 Solr(bin 버전)을 다운로드하고 파일을 /opt로 이동하여 압축을 풉니다.

$ tar xzf solr-*.tgz solr-*/bin/install_solr_service.sh --strip-components=2

/opt 아래에 설치하십시오.

$ sudo bash ./install_solr_service.sh solr-*.tgz
$ ln -s solr-*/ solr


일부 구성의 경우 수정bin/solr.in.sh합니다. /etc/default 아래에 파일을 생성하여 이 시스템 전체를 설정할 수도 있습니다.

#writing include file

SOLR_PID_DIR=/var/solr
SOLR_HOME=/var/solr/data

#LOG SETTINGS

LOG4J_PROPS=/var/solr/log4j2.xml
SOLR_LOGS_DIR=/var/solr/logs

SOLR_HEAP="1g"

SOLR_JAVA_HOME="/usr/lib/jvm/java-1.11.0-openjdk-amd64"
ZK_HOST="zk-server1:2181,zk-server2:2181,zk-server3:2181"
SOLR_LOG_LEVEL=INFO

# Data backup location for replication environment
SOLR_OPTS="$SOLR_OPTS -Dsolr.allowPaths=/mnt/solr_backup"

# for soft commits
SOLR_OPTS="$SOLR_OPTS -Dsolr.autoSoftCommit.maxTime=10000"
SOLR_HOST="zk-server-ip" # current server IP address

SOLR_JAVA_MEM="-Xms2g -Xmx2g"
ZK_CLIENT_TIMEOUT="30000"
SOLR_PORT=8983

# To make available on the public internet
SOLR_JETTY_HOST="0.0.0.0"

# set this up in case if you set up authentication. 
# By setting this, the script will run without error
SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=username:password"


구성에 정의된 디렉터리를 만듭니다.

$ mkdir -p /var/solr/data
$ mkdir -p /var/solr/logs


그리고 끝났습니다.

You have to configure all servers like this.



다음 스크립트를 사용하여 SolrCloud를 시작합니다.

$ bin/solr start -c -p 8983 -s /var/solr/data -z zk1:2181,zk2:2181,zk3:2181 -force


도움을 받으려면:

bin/solr start -help
bin/solr restart -help # you got the point how to get help


오류 없이 SolrCloud를 실행할 수 있기를 바랍니다.
bin/solr 스크립트를 사용하여 Solr 및 Zookeeper와 상호 작용합니다. 자세한 내용은 공식 문서를 참조하십시오.

컬렉션을 만들려면:

$ bin/solr create_collection -c col_name -d _default -shards 1 -replicationFactor 3 -p 8983 -V -force


컬렉션을 삭제하려면:

$ bin/solr delete -c col_name -deleteConfig true -p 8983 -V


그게 다야. 이 게시물을 수시로 업데이트하려고 합니다. 또한 나중에 몇 가지 유용한 명령을 포함할 계획입니다.

희망, 일이 잘되고 있습니다.

행복한 검색!

좋은 웹페이지 즐겨찾기