tomcat7.0+zookeeper+sola5.0.0搭建solr集群

solrCloud的搭建可以有两种方式:使用solr内嵌的jetty来搭建;使用外部web容器tomcat来搭建。对于使用jett来搭建参考solr官方的手册照着做就ok了,非常简单,下面我主要讲的是如何使用tomcat来搭建solrCloud。 因最新版本solr5.0.0较4.x版本文件结构上有一些变化,网上大多是以前版本的安装,特在此记录一下。

准备工作

solr5.0.0

apache-tomcat-7.0.42

zookeeper3.4.6

1.搭建tomcat单机版solr

可参照http://www.cnblogs.com/iiot/p/4408846.html

a. 将solr-5.0.0/server/webapps/solr.war目录下的solr.war拷贝到/usr/apache-tomcat-7.0.42/webapps/下,启动tomcat解压“solr.war”

b. 在/usr/apache-tomcat-7.0.42/webapps/solr/下新建文件夹solr_home(此处solr_home目录可以根据实际情况建立)

c. 把solr解压目录中的"solr-5.0.0/server/solr"目录下的所有内容复制到solr_home中。(此处solr_home为  /usr/local/solr5.0.0/solr_cloud)

d. 在solr_home中新建自己的conf。可以从configsets中复制一个出来,修改文件夹名称

e. apache-tomcat-7.0.42-solr/webapps/solr/WEB-INF/classes目录下加入log4j.properties,打印日志记录

2.安装配置zookeeper集群

具体下载,安装,配置不详细说了,比较简单,网上一搜一大堆。只列出我的关键配置项,如下:

clientPort=2181

server.1=slave-01:12888:13888 #server.2=slave-02:12888:13888

一般来讲zookeeper集群为奇数个,最少3个,来维持其稳定性,保证一个节点宕机不影响使用,因服务器资源问题,此处暂时只用1个

3.安装配置solrcloud

我们选择/usr/local/solr5.0.0/solr_cloud目录存放Solr的库文件和配置文件,该目录下有lib和device_values两个子目录。 lib下为jar文件,包括/server/lib/ext中的和war包里的jar,device_values里为conf文件 存储索引的目录,设置为/data/solr/dev_values(可以根据实际情况修改)

将配置文件上传到ZooKeeper集群中

java -classpath .:/usr/local/solr5.0.0/solr_cloud/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.0.177:2181 -confdir /usr/local/solr5.0.0/solr_cloud/device_values/conf -confname dev_values

java -classpath .:/usr/local/solr5.0.0/solr_cloud/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection dev_values -confname dev_values -zkhost 192.168.0.177:2181

修改solr.xml  新增zkHost节点,修改hostPort为tomcat的启动端口

<?xml version="1.0" encoding="UTF-8" ?>

<solr>

  <solrcloud>

    <str name="host">${host:}</str>
    <!-- <int name="hostPort">${jetty.port:8983}</int>-->
    <int name="hostPort">8983</int>
    <str name="zkHost">192.168.0.177:2181</str>
    <str name="hostContext">${hostContext:solr}</str>

    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>

    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
    <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>

  </solrcloud>

  <shardHandlerFactory name="shardHandlerFactory"
    class="HttpShardHandlerFactory">
    <int name="socketTimeout">${socketTimeout:600000}</int>
    <int name="connTimeout">${connTimeout:60000}</int>
  </shardHandlerFactory>

</solr>

在schema.xml中增加要索引的字段  uniqueKey根据实际情况修改  默认为id

   <field name="rowkey" type="string" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="did" type="string" indexed="true" stored="true" multiValued="false"/>
   <field name="dvid" type="string" indexed="true" stored="true" multiValued="false"/>
   <field name="timestamp" type="string" indexed="true" stored="true" multiValued="false"/>
   <field name="value" type="string" indexed="true" stored="true" multiValued="false"/>
   <field name="model" type="string" indexed="true" stored="true" multiValued="false"/>

 <uniqueKey>rowkey</uniqueKey>

修改日志路径及格式(如不想要日志,此步骤可以省略)

默认情况下,solr的日志是瞬时的,tomcat重启后,就消失了。可以通过图形化界面http://ip:port/solr/#/~logging查看,在linux命令行下可以通过命令curl ‘http://ip:port/solr/admin/info/logging?wt=json&since=0‘获取。 生成持久日志的方法: apache-tomcat-7.0.42-solr/webapps/solr/WEB-INF/classes目录下加入log4j.properties,打印日志记录

#  Logging level
solr.log=/var/logs/solr
log4j.rootLogger=INFO, file, CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n

#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=999

#log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.file.DatePattern = ‘.‘yyyy-MM-dd

#- File to log to and log format
log4j.appender.file.File=${solr.log}/solr.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n
log4j.appender.file.layout.ConversionPattern = \n[%-5p] %d{yyyy-MM-dd HH\:mm\:ss,SSS} %n%m%n

log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop=WARN

# set to INFO to enable infostream log messages
log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF

官网参考链接:http://wiki.apache.org/solr/SolrLogging

修改启动脚本

在Tomcat的启动脚本bin/catalina.sh中,增加如下配置:

JAVA_OPTS="$JAVA_OPTS -server -Xmx1024m -Xms256m -verbose:gc -Xloggc:solr_gc.log -Dbootstrap_confdir=/usr/local/solr5.0.0/solr_cloud/device_values/conf -DzkHost=192.168.0.177:2181"

将solo5.0.0文件夹scp到其他服务器

启动Tomcat服务器:

cd servers/apache-tomcat-7.0.42 bin/catalina.sh start

访问 http://192.168.0.177:8983/solr/#/  查看是否出现页面

启动其它服务器的tomcate

5、创建Collection、Shard和Replication

两种方式

a. 通过api接口创建

http://192.168.0.177:8983/solr/admin/cores?action=CREATE&name=dev_values-shard1-replica1&instanceDir=/usr/local/solr5.0.0/instance/dev_values-shard1-replica1&dataDir=/data/solr/dev_values/dev_values-shard1-replica1&collection=dev_values&shard=shard1

b. 通过管理页面创建

创建3个分片,每个分片两个副本集,创建成功之后,查看如下

时间: 2024-10-06 00:53:47

tomcat7.0+zookeeper+sola5.0.0搭建solr集群的相关文章

(转)淘淘商城系列——Solr集群搭建

http://blog.csdn.net/yerenyuan_pku/article/details/72957201 我们之前做的搜索使用的是Solr的单机版来实现的,正是由于我们现在商品数据量不多,才几千条而已.如果商品数据量变得非常庞大,比如说淘宝,淘宝上面的商品数量特别多,我们用一个单机版的Solr能实现吗?这里面就可能有问题了,一个是数据量特别庞大,每一个服务器存储容量是有上限的,一旦磁盘存不下了怎么办呢?这是不是有问题啊?还有就是由于淘宝的用户访问量很多,搜索的人也有很多,并发量很高

Solr集群搭建详细教程(二)

注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人[email protected]. 之前步骤:Solr集群搭建详细教程(一) 三.solr集群搭建 注意,在搭建solr集群前,建议最好有一个solr服务是已经搭建好的,可以简化大量重复的配置操作. 单机solr服务搭建过程参看我的这篇文章: Solr服务在Linux上的搭建详细教程 这个单机solr服务在solr集群搭建第二步和第三步里需要,搭建好一个solr服务后,就可以进行集群搭建了. 第一步

zookeeper集群环境搭建(使用kafka的zookeeper搭建zk集群)

---恢复内容开始--- 使用kafka的zookeeper来搞集群的话和单纯用zk的其实差不了多少. 0.说在前头,搭建kafka集群之前请把每个服务器的jdk搞起来. 1.安装kafka wget http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz 下载kafka然后放到你的目录下 解压 tar zxvf kafka_2.11-2.0.0.tgz 2.配置zk cd kafka_2.11-2.0.0/confi

linux集群下 solr集群搭建

首先介绍一下系统架构: * 这个图中代表的是三个solr实例,每个实例包括两个core,组成一个solrcloud * 索引集合包括两个 shard(shard1和shard2),shard1和shard2分别由三个core组成,其中一个L eader两个Replication,Leader是由zookeeper选举产生,zookeeper控制每个shard上三个core的索引数据一致,解决高可用和高并发问题. * Collection在solrcloud集群中是一个索引结构,被划分为一个或多个

Linux系列之solr集群版环境搭建(六)

SolrCloud简介 SolrCloud是solr提供的分布式搜索方案,当需要大规模容错.分布式索引和检索能力时使用.当一个系统的索引数量少时,不需要使用SolrCloud:当索引量很大,搜索请求并发很高时,需要使用SolrCloud. SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心. 它有几个特色功能: 1) 集中式的配置信息 2) 自动容错 3) 近实时搜索 4) 查询时自动负载均衡 Zookeeper简介

在Linux上使用Nginx为Solr集群做负载均衡

在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxyserver,和Apache,效果均很差,两台服务器做了负载均衡之后并发响应速度还没单台不做负载均衡的速度快.最后使用nginx,效果很不错,下面将在Linux上安装步骤记述一下. 1        安装准备 nginx软件版本:nginx 1.2.5 安装包:rhel_nginx-1.2.5-1.

用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(下)-搭建Hadoop集群

上篇:用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker 上篇介绍了快速上手Docker部分,下面接着介绍搭建Hadoop集群部分. 六.搭建Hadoop伪分布模式 我们先用前面创建的这个容器来搭建Hadoop伪分布模式做测试,测试成功后再搭建完全分布式集群. 1.SSH这个centos容器可以看做是一个非常精简的系统,很多功能没有,需要自己安装.Hadoop需要SSH,但容器没有自带,需要我们安装.①安装SSH # yum -y ins

Solr集群的搭建以及使用(内涵zookeeper集群的搭建指南)

1   什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使 用SolrCloud来满足这些需求. SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心. 它有几个特色功能: 1)集中式的配置信息 2)自动容

solr集群SolrCloud(solr+zookeeper)windows搭建

SolrCloud是什么 参考 solrCloud官网介绍 http://lucene.apache.org/solr/guide/6_6/solrcloud.html Apache Solr 可以设置solr集群,并且有容错性和高可用性能力,这被称为SolrCloud,它的功能是提供分布式索引和搜索,支持以下功能: 集中式的中央配置 自动负载平衡和故障切换 ZooKeeper集成,用于集群协调和配置. SolrCloud是灵活的分布式搜索和索引,没有主节点分配节点,分片和副本.相反,Solr使