1 概要


SolrCloud实际上是依托zk实现中心化配置管理的solr集群。具有容错、横向扩展和高可用等特性,能够对查询进行自动负载均衡和fail-over处理,适用于大规模的分布式索引和搜索。本文主要介绍最新版本solr on hdfs的搭建过程。


2 环境


  • Centos7

  • JDK8

  • ZooKeeper

  • Hadoop 2.7


3 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"}
}


4 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