一、概要
SolrCloud实际上是依托zk实现中心化配置管理的solr集群。具有容错、横向扩展和高可用等特性,能够对查询进行自动负载均衡和fail-over处理,适用于大规模的分布式索引和搜索。本文主要介绍最新版本solr on hdfs的搭建过程。
二、环境
- Centos7
- JDK8
- ZooKeeper
- Hadoop 2.7
三、Solr安装
通过将solr安装到以下四个节点,使用外部的zk构建solr cloud。
emr-worker-1
emr-worker-2
emr-worker-3
emr-worker-4
在emr-worker-1
节点[下载安装包]。(http://www.apache.org/dyn/closer.lua/lucene/solr/7.3.1)
解压service安装脚本。
tar xzf solr-7.3.1.tgz solr-7.3.1/bin/install_solr_service.sh --strip-components=2
安装solr service。 默认的solr目录安装在/opt
下, 启动配置文件solr.in.sh
安装在/etc/default
下,数据配置solr.xml
文件和日志默认安装在/var/solr
。以上安装目录可以在执行install_solr_service.sh
时进行参数配置,具体可以通过-help查看。
bash ./install_solr_service.sh solr-7.3.1.tgz -n
配置solr.in.sh
文件
SOLR_JAVA_MEM="-Xms4g -Xmx4g"
GC_LOG_OPTS="-verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails \
-XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime"
ZK_HOST="emr-header-1:2181,emr-header-2:2181,emr-header-3:2181/solr"
SOLR_HOST="emr-worker-1"
SOLR_TIMEZONE="UTC+8"
SOLR_OPTS="$SOLR_OPTS -Dsolr.directoryFactory=HdfsDirectoryFactory \
-Dsolr.lock.type=hdfs \
-Dsolr.hdfs.home=hdfs://emr-header-1:8020/solr"
注意:SOLR_HOST需要配置每个节点自己的HOST NAME
配置solr.xml
文件
<str name="host">${host:emr-worker-1}</str>
注意:配置每个节点自己的HOST NAME
然后,依次在其它节点上安装并配置。最后在zk上创建solr目录
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper, hadoop-ha, hbase]
[zk: localhost:2181(CONNECTED) 1] create /solr ''
Created /solr
[zk: localhost:2181(CONNECTED) 2] ls /
[zookeeper, hadoop-ha, hbase, solr]
启动solr服务
for h in "emr-worker-1" "emr-worker-2" "emr-worker-3" "emr-worker-4"
do
ssh $h service solr start
done
检查状态solr cloud状态,执行bin/solr status
:
Found 1 Solr nodes:
Solr process 21527 running on port 8983
{
"solr_home":"/var/solr/data",
"version":"7.3.1 ae0705edb59eaa567fe13ed3a222fdadc7153680 - caomanhdat - 2018-05-09 09:30:57",
"startTime":"2018-05-17T08:06:10.296Z",
"uptime":"0 days, 0 hours, 1 minutes, 46 seconds",
"memory":"112.8 MB (%2.9) of 3.8 GB",
"cloud":{
"ZooKeeper":"emr-header-1:2181,emr-header-2:2181,emr-header-3:2181/solr",
"liveNodes":"4",
"collections":"1"}
}
四、Collection操作
切换到solr用户
su solr
创建集合
bin/solr create_collection -c collection1 -shards 4 -replicationFactor 2
集合健康状态检查
bin/solr healthcheck -c test_collection
删除集合
bin/solr delete -c collection1