设为首页 收藏本站
查看: 548|回复: 0

[经验分享] solrcloud,tomcat,zookeeper安装配置

[复制链接]

尚未签到

发表于 2017-1-24 11:22:36 | 显示全部楼层 |阅读模式
之前由于在项目中使用的solr3.6,服务器总是莫名其妙的挂掉,各种解决未果,于是尝试换到solr4,想试试solrcloud和zookeeper集群看看效果怎么样,实际效果比3.6稳定很多,下面说一下项目中我们的具体现在一个测试的配置。 我们配置3台zookper服务器和3台solr服务器,由于没有多台机器测试,zookeeper的集群都在一台服务器上,tomcat部署在3台服务器上。
zookeeper是什么
ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig)  的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei  等项目中都采用到了 Zookeeper。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper是以Fast Paxos算法为基础,实现同步服务,配置维护和命名服务等分布式应用。
zookeeper安装及配置
zookeeper下载
http://www.apache.org/dyn/closer.cgi/zookeeper/
zookeeper配置
---------------
首先先把/etc/hosts下的主机名映射127.0.1.1改成127.0.0.1。
---------------
(1)解压为zookeeper[plain] view plaincopy 



  • tar -xf -C /home/myuser/zookeeper/  

复制zookeeper文件夹3份,分别重名名为zookeeperA,zookeeperB,zookeeperC。
并且创建数据快照以及日志存放文件夹,命名为zooA,zooB,zooC。
(2)编辑对应的zookeeper配置文件,复制zookeeperconf下zoo_sample.cfg为zoo.cfg
[plain] view plaincopy 



  • cd /home/myuser/zookeeperA/conf  
  • cp zoo_sample.cfg zoo.cfg     

(3)修改zoo.cfg
[html] view plaincopy 



  • # 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.  
  • dataDir=/home/myuser/zooA/data  
  • # the port at which the clients will connect  
  • clientPort=2181  
  • # ZooKeeper server and its port no. # ZooKeeper ensemble should know about every other machine in the ensemble # specify server id by creating 'myid' file in the dataDir # use hostname instead of IP address for convenient maintenance   
  • server.1=127.0.0.1:2888:3888  
  • server.2=127.0.0.1:2988:3988   
  • server.3=127.0.0.1:2088:3088  
  • #  
  • # 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  
  • dataLogDir=/home/myuser/zooA/log  

tickTime:心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间
initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值
clientPort:服务的监听端口
dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)
dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争

syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。
(4)创建myid文件
[plain] view plaincopy 



  • cd /home/myuser/zooA/data  
  • sudo sh -c 'echo "1" >> myid'    

其他文件夹类似创建myid文件,zookeeperB为2,zookeeperC为3
(5)启动zookeeper
[plain] view plaincopy 



  • cd /home/myuser/zookeeperA/bin  
  • sudo sh  zkServer.sh start  

查看zookeeper状态[plain] view plaincopy 



  • [iyunv@weibo bin]# sh zkServer.sh status  
  • JMX enabled by default  
  • Using config: /home/weibo/zookeeperA/bin/../conf/zoo.cfg  
  • Mode: follower  

启动OK,依次启动另外两台zookeeper,启动第一台zookeeper后,你可以观察bin下的zookeeper.out可以看到报错,connection refused,没有关系,zookeeper需要等待其他另个节点的加入,全部启动之后就正常了。
(6)客户端连接zookeeper
[plain] view plaincopy 



  • [iyunv@weibo bin]# sh zkCli.sh   
  • Connecting to localhost:2181  
  • 2013-05-10 15:00:25,363 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT  
  • 2013-05-10 15:00:25,369 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=localhost  
  • 2013-05-10 15:00:25,370 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.6.0_33  
  • 2013-05-10 15:00:25,371 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Sun Microsystems Inc.  
  • 2013-05-10 15:00:25,372 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/home/weibo/jdk1.6.0_33/jre  
  • 2013-05-10 15:00:25,373 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/home/weibo/zookeeperA/bin/../build/classes:/home/weibo/zookeeperA/bin/../build/lib/*.jar:/home/weibo/zookeeperA/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/weibo/zookeeperA/bin/../lib/slf4j-api-1.6.1.jar:/home/weibo/zookeeperA/bin/../lib/netty-3.2.2.Final.jar:/home/weibo/zookeeperA/bin/../lib/log4j-1.2.15.jar:/home/weibo/zookeeperA/bin/../lib/jline-0.9.94.jar:/home/weibo/zookeeperA/bin/../zookeeper-3.4.5.jar:/home/weibo/zookeeperA/bin/../src/java/lib/*.jar:/home/weibo/zookeeperA/bin/../conf:/home/weibo/jdk1.6.0_33/lib:.  
  • 2013-05-10 15:00:25,373 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/home/weibo/jdk1.6.0_33/jre/lib/amd64/server:/home/weibo/jdk1.6.0_33/jre/lib/amd64:/home/weibo/jdk1.6.0_33/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib  
  • 2013-05-10 15:00:25,374 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp  
  • 2013-05-10 15:00:25,375 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>  
  • 2013-05-10 15:00:25,375 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux  
  • 2013-05-10 15:00:25,376 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64  
  • 2013-05-10 15:00:25,377 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.32-279.5.2.el6.x86_64  
  • 2013-05-10 15:00:25,377 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root  
  • 2013-05-10 15:00:25,378 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root  
  • 2013-05-10 15:00:25,379 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/home/weibo/zookeeperA/bin  
  • 2013-05-10 15:00:25,382 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@9d04653  
  • Welcome to ZooKeeper!  
  • 2013-05-10 15:00:25,604 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@966] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (无法定位登录配置)  
  • JLine support is enabled  
  • 2013-05-10 15:00:25,649 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@849] - Socket connection established to localhost/127.0.0.1:2181, initiating session  
  • 2013-05-10 15:00:25,842 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1207] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x13e7e067764005d, negotiated timeout = 30000  
  •   
  • WATCHER::  
  •   
  • WatchedEvent state:SyncConnected type:None path:null  
  • [zk: localhost:2181(CONNECTED) 0] ls /  
  • [configs, zookeeper, clusterstate.json, aliases.json, live_nodes, overseer, overseer_elect, collections]  
  • [zk: localhost:2181(CONNECTED) 1]   

configs:保存上传的配置文件信息
clusterstate.json:集群状态json
aliases:别名json
live_node:当solr服务器启动的时候,会注册到这里
overseer:保存shard信息
overseer_elect:节点选举
collections:所有的collection
 
Solr及Tomcat安装配置
(1)下载solr4.2,把solr-4.2.1\example\solr\collection1\conf 目录下的配置文件上传的zookeeper
(2)上传solr配置文件到zookeeper
[plain] view plaincopy 



  • java -classpath .:/home/weibo/tomcat_solr_qq/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381 -confdir /home/weibo/solr-config -confname weiboconfig  

(3)把配置文件和目标collection联系起来
[plain] view plaincopy 



  • java -classpath .:/home/weibo/tomcat_solr_qq/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection weibocollection -confname weiboconfig -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381  

(4)复制3个tomcat,在conf/Catalina/localhost创建solr.xml(如果目录不存在,请自行创建),内容如下
[plain] view plaincopy 



  • <?xml version="1.0" encoding="utf-8"?>  
  • <Context docBase="/home/weibo/solr-qq/solr.war" debug="0" corssContext="false" >  
  •         <Environment name="solr/home" type="java.lang.String" value="/home/weibo/solr-qq/" override="true"/>  
  • </Context>  

crossContext不能设置为true,这里注意
(5)在你的solr home目录创建solr.xml
[plain] view plaincopy 



  • <?xml version="1.0" encoding="UTF-8" ?>  
  • <solr persistent="true">  
  •   <cores adminPath="/admin/cores" zkClientTimeout="20000" hostPort="8080">  
  •   </cores>  
  • </solr>  

其他tomcat对应设置对应的端口号
(6)编辑tomcat bin/catalina.sh(windows下catalina.bat),加入
[plain] view plaincopy 



  • JAVA_OPTS='-DzkHost=127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381'  


这里就是solr和zookeeper交互的地方了
(7)依次启动tomcat,创建core及shard,访问solr
----------------------------------这里由于为了测试简单,我只创建了一个主节点,没有replica节点,如果你需要,请跳过这一步,直接看下面的collection配置-----------------
[plain] view plaincopy 



  • http://localhost:8080/solr/admin/collections?action=CREATE&name=weibocollection&numShards=3&replicationFactor=1  


DSC0000.jpg


Collection,Shard,Replication,Core配置
首先,我们创建一个collection,并且指明它的replica的个数,shard的个数
[plain] view plaincopy 



  • http://localhost:8080/solr/admin/collections?action=CREATE&name=weibocollection&numShards=3&replicationFactor=3&maxShardsPerNode=3  

由于solr4.2会自动创建replication,所以这里不用手动去创建replication了已经。

Last
由于zookeeper是过半存活,所以由于我这里使用的是3台zookeeper,所以最大可以死掉1台,还能继续工作,官方推荐使用奇数台服务器。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-332925-1-1.html 上篇帖子: Tomcat双向SSL配置 下篇帖子: [原创]xampp-tomcat- connector---- xampp 完美整合现有的tomcat [续]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表