SolrCloud的搭建的连接

1 什么是SolrCloud

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

它有几个特色功能:

1)集中式的配置信息

2)自动容错

3)近实时搜索

4)查询时自动负载均衡

1.1 zookeeper是个什么?

h3 { margin-left: 1.27cm; text-indent: -1.27cm; margin-top: 0.46cm; margin-bottom: 0.46cm; direction: ltr; color: rgb(0, 0, 0); line-height: 172%; text-align: justify; page-break-inside: avoid }
h3.western { font-family: "Times New Roman", serif; font-size: 16pt }
h3.cjk { font-family: "宋体"; font-size: 16pt }
h3.ctl { font-family: "Times New Roman", serif; font-size: 10pt; font-weight: normal }
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; text-align: justify }
p.western { font-family: "Times New Roman", serif; font-size: 10pt }
p.cjk { font-family: "宋体"; font-size: 10pt }
p.ctl { font-family: "Times New Roman", serif; font-size: 10pt }
a:link { color: rgb(0, 0, 255); text-decoration: none }

顾名思义zookeeper就是动物园管理员,他是用来管hadoop(大象)、Hive(蜜蜂)、pig(小猪)的管理员,Apache Hbase和Apache Solr 的分布式集群都用到了zookeeper;Zookeeper:是一个分布式的、开源的程序协调服务,是hadoop项目下的一个子项目。

p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; text-align: justify }
p.western { font-family: "Times New Roman", serif; font-size: 10pt }
p.cjk { font-family: "宋体"; font-size: 10pt }
p.ctl { font-family: "Times New Roman", serif; font-size: 10pt }
a:link { color: rgb(0, 0, 255); text-decoration: none }

1.2 Zookeeper可以干哪些事情

1配置管理

在我们的应用中除了代码外,还有一些就是各种配置。比如数据库连接等。一般我们都是使用配置文件的方式,在代码中引入这些配置文件。但是当我们只有一种配置,只有一台服务器,并且不经常修改的时候,使用配置文件是一个很好的做法,但是如果我们配置非常多,有很多服务器都需要这个配置,而且还可能是动态的话使用配置文件就不是个好主意了。这个时候往往需要寻找一种集中管理配置的方法,我们在这个集中的地方修改了配置,所有对这个配置感兴趣的都可以获得变更。比如我们可以把配置放在数据库里,然后所有需要配置的服务都去这个数据库读取配置。但是,因为很多服务的正常运行都非常依赖这个配置,所以需要这个集中提供配置服务的服务具备很高的可靠性。一般我们可以用一个集群来提供这个配置服务,但是用集群提升可靠性,那如何保证配置在集群中的一致性呢?这个时候就需要使用一种实现了一致性协议的服务了。Zookeeper就是这种服务,它使用Zab这种一致性协议来提供一致性。现在有很多开源项目使用Zookeeper来维护配置,比如在HBase中,客户端就是连接一个Zookeeper,获得必要的HBase集群的配置信息,然后才可以进一步操作。还有在开源的消息队列Kafka中,也使用Zookeeper来维护broker的信息。在Alibaba开源的SOA框架Dubbo中也广泛的使用Zookeeper管理一些配置来实现服务治理。

2、名字服务

名字服务这个就很好理解了。比如为了通过网络访问一个系统,我们得知道对方的IP地址,但是IP地址对人非常不友好,这个时候我们就需要使用域名来访问。但是计算机是不能是别域名的。怎么办呢?如果我们每台机器里都备有一份域名到IP地址的映射,这个倒是能解决一部分问题,但是如果域名对应的IP发生变化了又该怎么办呢?于是我们有了DNS这个东西。我们只需要访问一个大家熟知的(known)的点,它就会告诉你这个域名对应的IP是什么。在我们的应用中也会存在很多这类问题,特别是在我们的服务特别多的时候,如果我们在本地保存服务的地址的时候将非常不方便,但是如果我们只需要访问一个大家都熟知的访问点,这里提供统一的入口,那么维护起来将方便得多了。

3、分布式锁

其实在第一篇文章中已经介绍了Zookeeper是一个分布式协调服务。这样我们就可以利用Zookeeper来协调多个分布式进程之间的活动。比如在一个分布式环境中,为了提高可靠性,我们的集群的每台服务器上都部署着同样的服务。但是,一件事情如果集群中的每个服务器都进行的话,那相互之间就要协调,编程起来将非常复杂。而如果我们只让一个服务进行操作,那又存在单点。通常还有一种做法就是使用分布式锁,在某个时刻只让一个服务去干活,当这台服务出问题的时候锁释放,立即fail over到另外的服务。这在很多分布式系统中都是这么做,这种设计有一个更好听的名字叫Leader Election(leader选举)。比如HBase的Master就是采用这种机制。但要注意的是分布式锁跟同一个进程的锁还是有区别的,所以使用的时候要比同一个进程里的锁更谨慎的使用。

4、集群管理

在分布式的集群中,经常会由于各种原因,比如硬件故障,软件故障,网络问题,有些节点会进进出出。有新的节点加入进来,也有老的节点退出集群。这个时候,集群中其他机器需要感知到这种变化,然后根据这种变化做出对应的决策。比如我们是一个分布式存储系统,有一个中央控制节点负责存储的分配,当有新的存储进来的时候我们要根据现在集群目前的状态来分配存储节点。这个时候我们就需要动态感知到集群目前的状态。还有,比如一个分布式的SOA架构中,服务是一个集群提供的,当消费者访问某个服务时,就需要采用某种机制发现现在有哪些节点可以提供该服务(这也称之为服务发现,比如Alibaba开源的SOA框架Dubbo就采用了Zookeeper作为服务发现的底层机制)。还有开源的Kafka队列就采用了Zookeeper作为Cosnumer的上下线管理。

2 Solr集群的结构

3 Solr集群的搭建

集群的结构大致如下,一个zookeeper集群负责管理配置文件和投票选举,solr集群共俩分片,每个分片一主一仆。

h2 { margin-left: 1.02cm; text-indent: -1.02cm; margin-top: 0.46cm; margin-bottom: 0.46cm; direction: ltr; color: rgb(0, 0, 0); line-height: 172%; text-align: justify; page-break-inside: avoid }
h2.western { font-family: "Arial", sans-serif; font-size: 16pt }
h2.cjk { font-family: "黑体"; font-size: 16pt }
h2.ctl { font-family: "Arial", sans-serif; font-size: 10pt; font-weight: normal }
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; text-align: justify }
p.western { font-family: "Times New Roman", serif; font-size: 10pt }
p.cjk { font-family: "宋体"; font-size: 10pt }
p.ctl { font-family: "Times New Roman", serif; font-size: 10pt }
a:link { color: rgb(0, 0, 255); text-decoration: none }

3、1 zookeeper集群搭建

1)下载zookeeper这里采用3.4.11并且解压,拷贝三分分别命名,如图:

2)配置zookeeper,这里以zookeeper1为例(网络版需要更换ip,伪分布式只需要更换port)

在zookeeper节点中建立一个data目录,用于存放数据文件,创建一个文件"myid",内容是1,表明当前节点id

1 # cd zookeeper1
2 # mkdir data
3 # echo 1 >> data/myid

进入config中,修改节点配置,指明数据文件目录、客户端连接端口和zookeeper集群中各个节点信息

1 cd conf       # 进入zookeeper config目录
2 cp zoo_sample.cfg zoo.cfg       # 复制一份配置文件,并修改内

修改配置信息如下:

重点关注最后四行

  dataDir:就是刚刚创建的目录,有个myid文件表示当前节点id(我们填的1)

  clientPort:外部访问solrcloud时连接的端口,因为solr交给zookeeper管理了

  server.zookeeper_nodeId=zookeeper_ip:选举端口:投票端口,选举和投票在不同端口进行

3)依次修改其他几个节点的配置信息(节点至少要三个)

4)启动zookeeper集群和关闭集群

h2 { margin-left: 1.02cm; text-indent: -1.02cm; margin-top: 0.46cm; margin-bottom: 0.46cm; direction: ltr; color: rgb(0, 0, 0); line-height: 172%; text-align: justify; page-break-inside: avoid }
h2.western { font-family: "Arial", sans-serif; font-size: 16pt }
h2.cjk { font-family: "黑体"; font-size: 16pt }
h2.ctl { font-family: "Arial", sans-serif; font-size: 10pt; font-weight: normal }
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; text-align: justify }
p.western { font-family: "Times New Roman", serif; font-size: 10pt }
p.cjk { font-family: "宋体"; font-size: 10pt }
p.ctl { font-family: "Times New Roman", serif; font-size: 10pt }
a:link { color: rgb(0, 0, 255); text-decoration: none }
h3 { margin-left: 1.27cm; text-indent: -1.27cm; margin-top: 0.46cm; margin-bottom: 0.46cm; direction: ltr; color: rgb(0, 0, 0); line-height: 172%; text-align: justify; page-break-inside: avoid }
h3.western { font-family: "Times New Roman", serif; font-size: 16pt }
h3.cjk { font-family: "宋体"; font-size: 16pt }
h3.ctl { font-family: "Times New Roman", serif; font-size: 10pt; font-weight: normal }
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; text-align: justify }
p.western { font-family: "Times New Roman", serif; font-size: 10pt }
p.cjk { font-family: "宋体"; font-size: 10pt }
p.ctl { font-family: "Times New Roman", serif; font-size: 10pt }
a:link { color: rgb(0, 0, 255); text-decoration: none }
h2 { margin-left: 1.02cm; text-indent: -1.02cm; margin-top: 0.46cm; margin-bottom: 0.46cm; direction: ltr; color: rgb(0, 0, 0); line-height: 172%; text-align: justify; page-break-inside: avoid }
h2.western { font-family: "Arial", sans-serif; font-size: 16pt }
h2.cjk { font-family: "黑体"; font-size: 16pt }
h2.ctl { font-family: "Arial", sans-serif; font-size: 10pt; font-weight: normal }
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; text-align: justify }
p.western { font-family: "Times New Roman", serif; font-size: 10pt }
p.cjk { font-family: "宋体"; font-size: 10pt }
p.ctl { font-family: "Times New Roman", serif; font-size: 10pt }
a:link { color: rgb(0, 0, 255); text-decoration: none }

# bin/zkServer.sh start   # 启动zookeeper# bin/zkServer.sh stop    # 关闭节点
节点全部启动后,可以查看节点状态# bin/zkServer.sh status

Solr集群安装参考别人的博客

原文地址:https://www.cnblogs.com/webyyq/p/8974438.html

时间: 2024-11-08 03:23:52

SolrCloud的搭建的连接的相关文章

windows下单机版的伪分布式solrCloud环境搭建Tomcat+solr+zookeeper

前面简单了解了ZooKeeper的相关知识,为SolrCloud的学习作了一层铺垫.在SolrCloud的wiki中,可以很简单地用jetty实现嵌入式ZooKeeper的单机版SolrCloud.但是在生产环境中,Solr一般都是部署在Tomcat上的.为了使架构更加灵活,ZooKeeper也是单独部署的.日常学习中,就一台单机怎么学习solrCloud呢?本文将记录在win7上实现ZooKeeper+Tomcat版的伪分布式SolrCloud. 1.软件工具箱 在本文的实践中,需要用到以下的

Solr集群(即SolrCloud)搭建与使用

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

14.SolrCloud环境搭建

1.在三台服务器上搭建ZooKeeper环境 详细步骤见ZK笔记 2.在四台服务器上搭建Solr单机版环境 详细步骤见Solr笔记09 3.将某一个Solrhome的Collection下的conf上传至Zookeeper java -classpath C:\Tomcat\webapps\solr\WEB_INF\lib/* org.apache.solr.cloud.ZKCLI -zkhost zookeeper01:2181,zookeeper02:2181,zookeeper03:218

ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(二) 之 ChatServer搭建,连接服务器,以及注意事项。

上篇:ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(一) 之 基层数据搭建,让数据活起来(数据获取) 上一篇我们已经完成了初步界面的搭建工作,本篇将介绍IM的核心内容了,就是SignalR的Hub类.整个即时通讯机制都是以它为基础的.至于原理我也不再讲解,讲了也不如专业的文章讲得好.所以我们直接看业务,上代码.有一部分原理 在文章 ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(二) 实现聊天室连接 (当时是LayIM1.0版本).原理

记录一次Spring boot 搭建框架连接Mysql数据库注解事务不回滚的故障

搭建了一个新框架,使用了spring boot 替换以简化原来繁杂的spring配置,使用Spring注解管理事务,持久层使用mybatis. 连接mysql数据库完成项目的过程中发现不支持事务,因为用的新框架自己本身也不是很了解,刚开始一直以为是自己的框架搭建的有问题, 后来发现是mysql数据库引擎的问题 解决方案 MyISAM不支持事物,InnoDB支持事物 先检查你的mysql版本 ,mysql 4.0系列之前是不支持事务的.    SELECT VERSION(); 检查你的数据库支持

SVN搭建与连接

服务器端的搭建 1.查看SVN软件是否安装 [[email protected] svndata]# rpm -qa subversion subversion-1.6.11-15.el6_7.x86_64 2.如果没有以上结果,则需执行如下命令进行安装. [[email protected] ~]# yum install subversion -y 配置并启动SVN 建立SVN版本库数据存储根目录(svndata)及用户,密码权限目录(svnpasswd) [[email protected

Ubuntu搭建ssh连接(连接方式:桥接网卡、网络地址转换(NAT))

操作系统:Ubuntu Server 16.04.2 SSH软件:Putty(远程连接工具,视本机操作系统选择对应版本的putty) ----------------------------------网络连接方式:桥接网卡----------------------------------- 第一步: 1)安装openssh-server,命令如下: sudo apt install openssh-server 因为我本机已经安装过openssh-server,所以截图与首次安装截图不一致(

solrcloud的搭建

在3台Linux服务器上部署solrcloud 服务器 zookeeper solr 机器名 192.168.30.121 端口:2181 端口:8985 yw-solr1 192.168.30.122 端口:2181 端口:8985 yw-solr2 192.168.30.123 端口:2181 端口:8985 yw-solr3 1.在先在121机器上解压安装好zookeeper. 目录结构: 1.进入conf目录,修改配置文件zoo.cfg 1.在zookeeper安装目录下创建dataDi

solrcloud 环境搭建

SolrCloud是solr的一个分布式解决方案,本文简单介绍下SolrCloud的环境配置.由于实际的生产环境主要是linux系统,所以本篇将在linux系统下进行. 本文采用 solr4.7 + zookeeper3.4.6 (standalone模式) 1 配置两台单机solr服务,可参照这里(linux和windows下大体相似) 2 安装zookeeper服务, 下载解压  zk  ,解压后 进入 /zookeeper-3.4.6/conf 目录 将zoo_sample.cfg 修改为