版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、solrcloud 集群搭建 1什么是 SolrCloud1.1 什么是 SolrCloudSolrCloud(solr 云)是 Solr 提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用 SolrCloud 的, 当索引量很大,搜索请求并发很高,这时需要使用 SolrCloud 来满足这些需求。1.2 SolrCloud 结构SolrCloud 为了降低单机的处理压力,需要由多台服务器共同来完成索引和搜索任务。实现的思路是将索引数据进行 Shard(分片)拆分,每个分片由多台的服务器共同完成,当一个索引或搜
2、索请求过来时会分别从不同的 Shard 的服务器中操作索引。SolrCloud 需要 Solr 基于Zookeeper 部署,Zookeeper 是一个集群管理软件,由于 SolrCloud需要由多台服务器组成,由 zookeeper 来进行协调管理。下图是一个 SolrCloud 应用的例子:对上图进行图解,如下:1.2.1 物理结构三个 Solr 实例( 每个实例包括两个 Core),组成一个 SolrCloud。1.2.2 逻辑结构索引集合包括两个 Shard(shard1 和 shard2),shard1 和 shard2 分别由三个 Core 组成,其中一个 Leader 两个Rep
3、lication,Leader 是由zookeeper 选举产生,zookeeper 控制每个 shard上三个 Core 的索引数据一致,解决高可用问题。用户发起索引请求分别从 shard1 和 shard2 上获取,解决高并发问题。collectionCollection 在 SolrCloud 集群中是一个逻辑意义上的完整的索引结构。它常常被划分为一个或多个 Shard(分片),它们使用相同的配置信息。比如:针对商品信息搜索可以创建一个 collection。collection=shard1+shard2+.+shardXCore每个 Core 是 Solr
4、 中一个独立运行单位,提供 索引和搜索服务。一个 shard 需要由一个Core 或多个 Core 组成。由于 collection 由多个 shard 组成所以 collection 一般由多个 core 组成。Master 或 SlaveMaster 是 master-slave 结构中的主结点(通常说主服务器),Slave 是 master-slave 结构中的从结点(通常说从服务器或备服务器)。同一个 Shard 下 master 和 slave 存储的数据是一致的,这是为了达到高可用目的。ShardCollection 的逻辑分片。每个 Shard 被化成
5、一个或者多个 replication,通过选举确定哪个是 Leader。2SolrCloud 搭建SolrCloud 结构图如下:SolrCloudSolr Solr Solr Solr Shard2Shard12.1 环境准备CentOS-6.5-i386-bin-DVD1.isojdk-7u72-linux-i586.tar.gzapache-tomcat-7.0.57.tar.gzzookeeper-3.4.6.tar.gzsolr-4.10.3.tgz服务器 7 台:zookeeper 三台:192
6、.168.0.5,,Solr 四台:,,,CollectionCoreCoreCoreCorezookeeperZk3 Zk2 Zk1 2.2 环境安装2.3 CentOs 6.5 安装略2.4 jdk7 安装略2.5 zookeeper 集群安装2.5.1 解压 zookeeper 安装包tar -zxvf zookeeper-3.4.6.tar.gz将 zookeeper-3.4.6 拷贝到/u
7、sr/local 下并将目录名改为 zookeeper至此 zookeeper 的安装目录为/usr/local/zookeeper2.5.2 进入 zookeeper 文件夹,创建 data 和 logs创建目录并赋于写权限指定 zookeeper 的数据存放目录和日志目录2.5.3 拷贝 zookeeper 配制文件 zoo_sample.cfg拷贝 zookeeper 配制文件 zoo_sample.cfg 并重命名 zoo.cfgcp /usr/local/zookeeper/conf/zoo_sample.cfg/usr/local/zookeeper /conf/zoo.cfg2.
8、5.4 修改 zoo.cfg加 入 dataDir=/usr/local/zookeeper/datadataLogDir=/ usr/local/zookeeper/logssserver.1=:2888:3888 server.2=:2888:3888 server.3=:2888:3888zoo.cfg 配制完后如下:# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchroni
9、zation 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=/usr/local/zookeeper/data# the port at whi
10、ch the clients will connect clientPort=2181# the maximum number of client connections.# increase this if you need to handle more clients #maxClientCnxns=60# Be sure to read the maintenance section of the# administrator guide before turning on autopurge. # /doc/current/zooke
11、eperAdmin.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=/usr/local/zookeeper/logs server.1=:2888:3888 server.2=:2888:38
12、88 server.3=:2888:38882.5.5 进入 data 文件夹 建立对应的 myid 文件例如server.1为则 data文件夹下的myid文件内容为1echo 1 myidserver.2为则 data文件夹下的myid文件内容为2依此类推2.5.6 拷贝 zookeeper文件夹到其他机器(和)2.5.7 开启 zookeeper 的端口/sbin/iptables -I INPUT -p tcp -dport 2181 -j ACCEPT/sbin/iptabl
13、es -I INPUT -p tcp -dport 2888 -j ACCEPT/sbin/iptables -I INPUT -p tcp -dport 3888 -j ACCEPT/sbin/iptables -I INPUT -p tcp -dport 8080 -j ACCEPT-这里开启 tomcat 8080 端口/etc/rc.d/init.d/iptables save #将更改进行保存/etc/init.d/iptables restart #重启以便改动生效2.5.8 启动三台服务器的 zookeeper进入/usr/local/zookeeper /bin./zkServ
14、er.sh start查看集群状态./zkServer.sh status刚启动可能会有错误,集群中其他节点一并起来后就正常了2.6 tomcat 安装将apache-tomcat-7.0.57.tar.gz 拷贝到/usr/local 下并解压cd /usr/localtar -zxvf apache-tomcat-7.0.57.tar.gz2.7 solr 单机部署2.7.1 解压 solr.4.10.3.tgz在其中一台服务器上解压 solr.4.10.3.tgz,将 solr.4.10.3.tgz 拷贝到/usr/local 下,解压缩:tar -zxvf solr-4.10.3.tg
15、z压缩后在/usr/local 下有 solr-4.10.3 目录 。2.7.2 solrhome在/home 下创建 solr 作为 solrhome 并赋于读写权限2.7.3 部署 solr.war参考 solr 单机部署方法。启动 tomcat 访问 :8080/solr 如图,至此单机版 solr 配制完成2.8 solrCloud 部署2.8.1 启动 zookeepersolrCloud 部署依赖 zookeeper,需要先启动每一台 zookeeper 服务器。2.8.2 zookeeper 管理配置文件由于 zookeeper 统一管理 sol
16、r 的配置文件(主要是 schema.xml、solrconfig.xml), solrCloud各各节点使用 zookeeper 管理的配置文件。将上边部署的 solr 单机的 conf 拷贝到/home/solr 下。执行下边的命令将/home/solr/conf 下的配置文件上传到 zookeeper(此命令为单条命令,虽然很长 o()o):sh /usr/local/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh -zkhost:2181,:2181,:2181 -c
17、md upconfig -confdir/usr/local/solr-4.10.3/example/solr/collection1/conf -confname myconf登陆 zookeeper 服务器查询配置文件:cd /usr/local/zookeeper/bin/./zkCli.sh2.8.3 修改 SolrCloud 监控端口为 8080:修改每个 solr 的/home/solr/solrhome/solrconfig.xml 文件。2.8.4 每一台 solr 和 zookeeper 关联修改每一台 solr 的 tomcat 的 bin 目录下 catalina.sh
18、文件中加入 DzkHost 指定 zookeeper 服务器地址:JAVA_OPTS=-DzkHost=:2181,:2181,:2181(可以使用 vim 的查找功能查找到 JAVA_OPTS 的定义的位置,然后添加)2.8.5 启动所有的 solr 服务启动每一台 solr 的 tomcat 服务。2.8.6 访问 solrcloud访问任意一台 solr,左侧菜单出现 Cloud:2.8.7 SolrCloud 集群配置上图中的 collection1 集群只有一片,可以通过下边的方法配置新的集群。创建新集群 collec
19、tion2,将集群分为两片,每片两个副本。:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2删除集群命令;:8080/solr/admin/collections?action=DELETE&name=collection1执行后原来的 collection1 删除,如下:更多的命令请参数官方文档:apache-solr-ref-guide-4.10.pdf2.8.8 启动 solrCloud 注
20、意启动 solrCloud 需要先启动 solrCloud 依赖的所有zookeeper 服务器,再启动每台 solr 服务器。2.9 SolrCloud 测试创建索引:测试 1:在一台 solr 上创建索引,从其它 solr 服务上可以查询到。测试 2:一次创建 100 个文档甚至更多,通过观察每个 solr 的 core 下边都有索引文档,说明索引文档是分片存储。查询索引:从任意一台 Solr 上查询索引,返回一个完整的结果,说明查询请求从不同的分片上获取数据,最终返回集群上所有匹配的结果。2.10 solrJ 访问 solrCloudpublic class SolrCloudTest
21、/ zookeeper地址private static String zkHostString = :2181,:2181,:2181;/ collection默认名称,比如我的solr服务器上的collection是collection2_shard1_replica1,就是去掉“_shard1_replica1”的名称private static String defaultCollection = collection2;/ 客户端连接超时时间private static int zkClientTimeout
22、 = 3000;/ zookeeper连接超时时间private static int zkConnectTimeout = 3000;/ cloudSolrServer实际private CloudSolrServer cloudSolrServer;/ 测试方法之前构造 CloudSolrServer Beforepublic void init() cloudSolrServer = new CloudSolrServer(zkHostString); cloudSolrServer.setDefaultCollection(defaultCollection); cloudSolrSe
23、rver.setZkClientTimeout(zkClientTimeout); cloudSolrServer.setZkConnectTimeout(zkConnectTimeout); cloudSolrServer.connect();/ 向solrCloud上创建索引Testpublic void testCreateIndexToSolrCloud() throws SolrServerException, IOException SolrInputDocument document = new SolrInputDocument(); document.addField(id, 100001); document.addField(title, 李 四 ); cloudSolrServer.add(document); cloudSolrSmit();/ 搜索索引Testpublic void testSearchIndexFromSolrCloud() throws Exception SolrQuery query = new SolrQuery();query.setQuery(*:*);try QueryResponse response = cloudSolrServer.query(qu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧物流云边端架构规划技术方案
- 设备润滑管理培训
- 新质生产力智慧物流规划技术方案
- 住宅尾货渠道拓客方案
- 生产车间绩效考核落地方案
- 品控部门绩效考核落地方案
- 2026年金融行业数据变现新模式报告
- 2026年人工智能教育应用报告及发展前景
- 2026年行业电子签章在娱乐行业中的应用报告
- 2027届鄂尔多斯市重点中学八上数学期末联考试题含解析
- 证券经营机构数据报送接口规范(初稿)
- 毕业设计(论文)-基于S7-200 PLC自动扶梯控制系统设计
- 项目经费包干制管理制度
- 岩溶区人类活动与溶洞生态系统影响评估-洞察阐释
- “职”引未来(云南师范大学)知道智慧树章节答案
- 《新编大学生军事理论与技能(第2版)》全套教学课件
- 中建水厂建设工程施工组织设计编制指南
- 1+X网关用户手册 V100
- 装修工人合作协议
- 港珠澳大桥建筑技术与设计理念
- 20G520-1-2钢吊车梁(6m-9m)2020年合订本
评论
0/150
提交评论