Apache SolrCloud安装
1.介绍
SolrCloud通过ZooKeeper集群来进行协调,使一个索引进行分片,各个分片可以分布在不同的物理节点上,多个物理分片组成一个完成的索引Collection。SolrCloud自动支持Solr Replication,可以同时对分片进行复制,冗余存储。下面,我们基于Solr最新的4.4.0版本进行安装配置SolrCloud集群。
2. 安装环境
我使用的安装程序各版本如下:
- Solr: Apache Solr-4.4.0
- Tomcat: Apache Tomcat 7.0.47
- ZooKeeper: Apache ZooKeeper 3.3.6
各个目录说明:
- 所有的程序安装在/opt目录下,你可以依照你的实际情况下修改安装目录。
- ZooKeeper的数据目录在/data/zookeeper/data
- solr/home设置在/usr/local/solrhome
3. 规划SolrCloud
- 单一SolrCloud数据集合:product
- ZooKeeper集群:3台
- SolrCloud实例:3节点
- 索引分片:3
- 复制因子:2
手动将3个索引分片(Shard)的复本(Replica)分布在3个SolrCloud节点上
三个节点:
- 192.168.137.101
- 192.168.137.102
- 192.168.137.103
4. 安装ZooKeeper集群
由于需要用到ZooKeeper,故我们先安装好ZooKeeper集群
首先,再第一个节点上将zookeeper-3.3.6.zip解压到/opt目录:
unzip zookeeper-3.3.6 -d /opt/
创建zookeeper配置文件zookeeper-3.3.6/conf/zoo.cfg内容如下:
# 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.
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
server.1=192.168.137.101:2888:3888
server.2=192.168.137.102:2888:3888
server.3=192.168.137.103:2888:3888
zookeeper的数据目录指定在/data/zookeeper/data,日志文件指定目录/data/zookeeper/logs你也可以使用其他目录,通过下面命令进行创建该目录
mkdir /data/zookeeper/data -p
初始化myid,三个节点编号依次为1,2,3,在其余节点上分别执行命令
echo "1" >/data/zookeeper/data/myid
在第二个和第三个节点上依次重复上面的操作。这样第一个节点中myid内容为1,第二个节点为2,第三个节点为3。
启动ZooKeeper集群,在每个节点上分别启动ZooKeeper服务:
sh /opt/zookeeper-3.3.6/bin/zkServer.sh start
可以查看ZooKeeper集群的状态,保证集群启动没有问题:
[root@localhost ~]# sh /opt/zookeeper-3.3.6/bin/zkServer.sh status
JMX enabled by default
Using config: /opt/zookeeper-3.3.6/bin/../conf/zoo.cfg
Mode: follower
5. 安装Solr
执行以下命令:
tar zxvf apache-tomcat-7.0.47.tar.gz -C /opt/
unzip solr-4.4.0.zip -d /opt
cd /opt chmod +x apache-tomcat-6.0.36/bin/*.sh cp solr-4.4.0/example/webapps/solr.war apache-tomcat-6.0.36/webapps/
解压solr.war
unzip solr.war -d solr
cp solr-4.4.0/example/lib/ext/* apache-tomcat-6.0.36/webapps/solr/WEB-INF/lib/ cp solr-4.4.0/example/resources/log4j.properties apache-tomcat-6.0.36/lib/6. ZooKeeper管理配置文件
先将附件中的配置文件解压,然后拷贝到/usr/local/solrhome/core0/conf目录下(每个节点)
1、 创建一个SolrCloud目录,并将solr的lib文件拷贝到这个目录:
mkdir -p /usr/local/SolrCloud/solr-lib/cp apache-tomcat-7.0.47/webapps/solr/WEB-INF/lib/* /usr/local/SolrCloud/solr-lib/说明:
- zkhost指定ZooKeeper地址,逗号分割
/usr/local/solrhome/core0/conf目录下存在schema.xml和solrconfig.xml两个配置文件,你可以修改为你自己的目录。- productconf为在ZooKeeper上的配置文件名称。
4、把配置文件和目标collection联系起来:
java -classpath .:/usr/local/SolrCloud/solr-lib/* org.apache.solr.cloud.ZkCLI -zkhost 192.168.137.101:2181,192.168.137.102:2181,192.168.137.103:2181 -cmd linkconfig -collection product -confname productconf
说明:
- 创建的collection叫做product,并指定和productconf连接
5、查看ZooKeeper上状态
在任意一个节点的/opt目录下执行如下命令:
[root@localhost opt]# zookeeper-3.3.6/bin/zkCli.sh[zk: localhost:2181(CONNECTED) 0] ls /[configs, zookeeper, clusterstate.json, aliases.json, live_nodes, overseer, collections, overseer_elect][zk: localhost:2181(CONNECTED) 1] ls /configs[productconf][zk: localhost:2181(CONNECTED) 1] ls /collections[product]/configs和/collections目录均有值,说明配置文件已经上传到ZooKeeper上了,接下来启动solr7. Tomcat配置与启动
1、修改每个节点上的tomcat配置文件,在环境变量中添加zkHost变量
编辑apache-tomcat-6.0.36/bin/catalina.sh,添加如下代码:
JAVA_OPTS='-Dsolr.solr.home=/usr/local/solrhome -DzkHost=192.168.137.101:2181,192.168.137.102:2181,192.168.137.103:2181'
在/usr/local/solrhome/目录创建solr.xml:
<?xml version="1.0" encoding="UTF-8" ?><solr persistent="true" sharedLib="lib"> <cores adminPath="/admin/cores" zkClientTimeout="20000" hostPort="${jetty.port:8080}" hostContext="${hostContext:solr}"></cores></solr>说明:
- hostPort值应该和tomcat的端口保持一致
- solr默认使用jetty服务器,端口默认为8983
最后,在/opt目录下启动tomcat:
sh apache-tomcat-7.0.47/bin/startup.sh
通过http://192.168.56.121:8080/solr/进行访问,界面提示There are no SolrCores running.,这是因为配置文件尚未配置solrcore。

8. 创建Collection、Shard和Replication
创建Collection及初始Shard
直接通过REST接口来创建Collection,你也可以通过浏览器访问下面地址,如下所示:
如果成功,会输出如下响应内容如图:

上面链接中的几个参数的含义,说明如下:
- name 待创建Collection的名称
- numShards 分片的数量
- replicationFactor 复制副本的数量
可以通过Web管理页面,访问http://192.168.137.101:8080/solr/#/~cloud,查看SolrCloud集群的分片信息:

实际上,我们从192.168.137.101节点可以看到,SOLR的配置文件内容,已经发生了变化,如下所示:

同时,你还可以看另外两个节点上的solr.xml文件的变化。
手动创建Replication
下面对已经创建的初始分片进行复制。 shard1已经在192.168.137.102上,我们复制分片到192.168.56.101和192.168.56.103上,执行如下命令:

product_shard1_replica_2,在192.168.137.103节点上有一个副本,名称为product_shard1_replica_3。也可以通过查看192.168.137.102和192.168.137.103上的目录变化,如下所示:
你还可以对shard2和shard3添加副本。
再次从192.168.137.101节点可以看到,SOLR的配置文件内容,又发生了变化,如下所示:

到此为止,我们已经基于3个节点,配置完成了SolrCloud集群。

Apache SolrCloud安装的更多相关文章
- 将Apache手动安装成Windows的服务
将Apache手动安装成Windows的服务 可以选择在安装Apache时自动将其安装为一个服务.如果选择"for all users",那么Apache将会被安装为服务. 如果选 ...
- Apache JMeter安装
Apache JMeter安装说明 1. 安装环境要求: Java版本 JMeter要求充分满足JVM1.3或更高. 操作系统 JMeter可以在当前任何一个已经部署了Java的操作系统上 ...
- Linux下apache+phppgadmin安装配置
1.安装pg 安装PostgreSQL数据库 修改pg_hba.conf配置文件,使得数据库可以通过外部访问. 具体可以配置为: # TYPE DATABASE USER ADDRESS METHOD ...
- apache linux 安装
sudo apt-get install zlib1g-dev 1.到官网下载,然后解压httpd-2.4.18.tar.gz 2.下载apr-1.5.2.tar.gz并解压 http://ar ...
- Ubuntu下Apache的安装
Ubuntu下可快速安装LAMP server(Apache+MySQL+PHP5),参见<Ubuntu下快速安装LAMP server>一文. 也可以手动安装Apache.本文介绍如何手 ...
- Linux下查看mysql、apache是否安装,安装,卸载等操作
Linux下查看mysql.apache是否安装,并卸载. 指令 ps -ef|grep mysql 得出结果 root ? :: /bin/sh /usr/ ...
- 查看linux服务器中的apache是否安装以及安装路径
1.可以通过 apachectl -v 查看apache是否安装,如果安装了的话会显示版本号: 2.如果通过rpm包安装的话可以用 rpm -q httpd 查看,如果安装的的话会显示包的名称
- 简单的php和apache的安装
今天刚刚接触到PHP 要想深入学习一门语言 首先我们先从安装开始 对于php和apache这两个程序是比较难以安装的 好了 下面我们开始正式安装: 首先我们得准备好 apache 以及 ...
- Apache的安装
Apache的安装: 注:本例只截取需要注意的截图,其它默认则不显示. 1. 服务器信息可以按照默认配置,如果服务器的80端口没被其他服务器程序占据.可选“for All Users,on ...
随机推荐
- 【转】C# 中 10 个你真的应该学习(和使用!)的功能
如果你开始探索C#或决定扩展你的知识,那么你应该学习这些有用的语言功能,这样做有助于简化代码,避免错误,节省大量的时间. 1)async / await 使用async / await-pattern ...
- [No00008C]图解SQL的各种连接join让你对SQL的连接一目了然
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...
- [LeetCode] Group Shifted Strings 群组偏移字符串
Given a string, we can "shift" each of its letter to its successive letter, for example: & ...
- mac mysql5.7重置root密码
先停止mysql服务 //停止表权限 cd /usr/local/mysql/bin/ ./mysqld_safe --skip-grant-tables & 直接mysql 进入数据库 up ...
- IFC格式简介
IFC是一个数据交换标准, 用于不同系统交换和共享数据.当需要多个软件协同完成任务时, 不同系统之间就会出现数据交换和共享的需求.这时, 工程人员都希望能将工作成果(这里就是工程数据), 从一个软件完 ...
- android studio 使用jar包,arr包和怎么使用githup开源项目中的aar包或module
我这里的android studio的版本是2.2.3版本 一.现在大家都用android studio了,就有人问怎么使用jar包 其实使用jar包比较简单 直接吧jar放入工程的app目录下的li ...
- Android 开源框架Universal-Image-Loader学习
Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用 Android 开源框架Universal-Image-Loader完全解析(二)--- 图片 ...
- Python实战项目网络爬虫 之 爬取小说吧小说正文
本次实战项目适合,有一定Python语法知识的小白学员.本人也是根据一些网上的资料,自己摸索编写的内容.有不明白的童鞋,欢迎提问. 目的:爬取百度小说吧中的原创小说<猎奇师>部分小说内容 ...
- Socket编程实践(3) 多连接服务器实现与简单P2P聊天程序例程
SO_REUSEADDR选项 在上一篇文章的最后我们贴出了一个简单的C/S通信的例程.在该例程序中,使用"Ctrl+c"结束通信后,服务器是无法立即重启的,如果尝试重启服务器,将被 ...
- destoon : 后台无法登录问题解决
经常有朋友在destoon搬家的时候 , 数据还原之后 , 会出现后台无法登录的情况 . 具体表现为后台帐号密码输入后点击确定 , 页面刷新 .并没有跳转到相应后台页面 . 但是如果帐号密码输入错误 ...