企业级搜索引擎solr搭建

简介

Solr是一个基于Apache lucene高可用、可扩展、容错性强的企业级别的应用搜索服务,它提供分布式索引、副本、平衡查询负载、自动故障转移和恢复、中心化配置等特性。
它对外提供类似于Web-service的API接口,可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
官方地址

solr集群搭建

版本说明

本文根据业务场景,并没有使用最新的版本,相关版本:solr-4.6.1、zookeeper-3.4.6。

zk搭建

zookeeper集群搭建(3个实例)

  1. 下载zookeeper-3.4.5.tar.gz,并解压缩放在/home/server/sorlcloud/目录中,如果没有这个目录则创建。
  2. cp -r zookeeper-3.4.5 zookeeper-3.4.5-2181 #最后一个数为端口号
  3. cp -r zookeeper-3.4.5 zookeeper-3.4.5-2182
  4. cp -r zookeeper-3.4.5 zookeeper-3.4.5-2183
  5. 在每个对应的zookeeper目录中,创建data目录,并在data目录生成myid,写入值分别为1、2、3作为ID
  6. cp conf/zoo_sample.cfg conf/zoo.cfg,并修改配置文件,三个zookeeper除了data和clientPort不一样外,集群节点信息配置相同。
# The number of milliseconds of each tick  
tickTime=2000  
# The number of ticks that the initial   
# synchronization phase can take  
initLimit=10  
# The number of ticks that can pass between   
# sending a request and getting an acknowledgement  
syncLimit=5  
# the directory where the snapshot is stored.  
# do not use /tmp for storage, /tmp here is just   
# example sakes.  
# 修改对应的data路径  
dataDir=/home/server/zookeeper-3.4.5-2181/data  
# the port at which the clients will connect  
clientPort=2181  
#集群中节点信息,包括ID, IP, 投票和选取端口  
server.1=127.0.0.1:2881:3881  
server.2=127.0.0.1:2882:3882  
server.3=127.0.0.1:2883:3883  
#  
# Be sure to read the maintenance section of the   
# administrator guide before turning on autopurge.  
#  
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance  
#  
# The number of snapshots to retain in dataDir  
#autopurge.snapRetainCount=3  
# Purge task interval in hours  
# Set to "0" to disable auto purge feature  
#autopurge.purgeInterval=1  
  1. 启动zookeeper,分别进入相应的目录中,运行bin/zkServer.sh start
  2. 分别检查每个zookeeper的状态,运行bin/zkServer.sh status,如果需要停止bin/zkServer.sh stop

二、solrcloud搭建

  1. 下载solr-4.6.1.tgz,并解压到sorlcloud,同样复制2个节点。
  2. cp -r solr-4.6.1 solr-4.6.1-8983
  3. cp -r solr-4.6.1 solr-4.6.1-8984
  4. 进入solr-4.6.1-8983/example/cloud-scripts/中,上传solr配置文件到zookeeper,使用如下命令
#zkhost指定zookeeper的集群的地址,多个用逗号分隔,同时可以指定子路径,只需要在其中一个上指定即可。
#solrhome必须指定,它是solr.xml文件所在目录,当然用户可以自行配置  
#configname指定上传的配置文件名  
./zkcli.sh -zkhost 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183<span style="color:#ff0000;">/solr</span> -cmd upconfig -confdir /home/server/solrcloud/solr-4.6.1-8983/example/solr -confname collection1  

这条命令最终会在zookeeper集群的/solr/configs目录中生成collection1配置文件,如果不指定zookeeper的子路径,默认在zookeeper的/configs目录中生成,这样很容易跟其它使用该zookeeper集群的配置冲突,建议带子路径上传。

  1. 在zookeeper中,使用bin/zkCli.sh连接上zookeeper,并使用zk的命令查看配置文件是否成功上传。
ls /solr/configs 正常可以看到上传的configname, 配置文件尽量不从其它地方导入zk,这样很容易出问题,后面会谈到。 
  1. 启动solr,根据solr的官方文档,solr有几种启动方式:1.solr默认支持使用jetty容器启动(配置最简单);2. 使用tomcat等其它容器启动;3.其它
    建议使用jetty启动,网上其它博客都是使用tomcat启动,配置繁琐,而且种jar包来回拷贝,很容易出错。建议一个脚本:
#!/bin/bash  
LOGHOME="/home/server/solr/"  
BASE_DIR=/home/server/solrcloud/solr-4.6.1-8983/example/solr  
JVM_ARGS="-Xmx2g -Xms2g -XX:MaxDirectMemorySize=5g -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port="$2" -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -verbose:gc -Xloggc:"$LOGHOME"/gc.log -XX:CMSInitiatingOccupancyFraction=65 -XX:+UseCMSCompactAtFullCollection -XX:MaxTenuringThreshold=10  -XX:MaxPermSize=156M -XX:SurvivorRatio=3  -XX:NewRatio=2 -XX:+PrintGCDateStamps   -XX:+PrintGCDetails -XX:+UseParNewGC -XX:+UseConcMarkSweepGC"  
ZK_SERVERS="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183/solr"  
ZK_TIMEOUT=10000  
SHARDS=1  #指定分片数目  
JETTY_PORT=$1  #从命令行获取端口号  
exec java $JVM_ARGS -Djetty.port=$1 -Dbootstrap_conf=true -DnumShards=$SHARDS -DzkHost=$ZK_SERVERS -DzkClientTimeout=$ZK_TIMEOUT -Dsolr.solr.home=$BASE_DIR -jar $BASE_DIR/start.jar 

执行./start.sh 8700 8701

  1. 接下来就可以访问http://localhost:8700/solr
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345