知识点
相关文章
更多最近更新
更多solrcloud分布式集群部署&zookeeper集群安装
2019-03-27 01:20|来源: 网路
Solrcloud集群搭建
使用solrcloud有几点需要注意的: 索引数据量比较大;配置是统一的(zookeeper会保持配置信息的一致性)
如果索引数据量不大,并且需求变动比较多,field要经常变动的可以考虑用multicore的模式。
规划
虚拟机环境centos6.2 64位系统 三台1G内存的虚机 网卡模式是NAT(测试环境推荐使用NAT)
192.168.139.121 master
192.168.139.122 slave1
192.168.139.123 slave2
修改 /etc/hosts 文件加入上面的域名
修改主机名 vi /etc/sysconfig/network
切记关闭防火墙(否则zookeeper启动 zkServer.sh status查看状态会找不到各自的角色)
首先要搭建的是zookeeper集群
Zookeeper集群的机器个数推荐是奇数台,半数机器挂掉,服务是可以正常提供的
所有需要的软件首先上传到 /soft下
使用的zookeeper.3.4.5.tar.gz 稳定版
tar –zxvf zookeeper.3.4.5.tar.gz
cd zookeeper.3.4.5/conf
mv zoo_sample.cfg zoo.cfg //修改配置文件名
mkdir /soft/zookeeper-data //zookeeper的数据存储位置
mkdir /soft/zookeeper-data/logs //zookeeper的日志文件位置
vi /zookeeper.3.4.5/conf/zoo.cfg
修改
dataDir=/soft/zookeeper-data
dataLogDir=/soft/zookeeper-data/logs
//添加zookeeper的集群配置
server.1=192.168.139.121:2888:3888
server.2=192.168.139.122:2888:3888
server.3=192.168.139.123:2888:3888
或者用域名
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
然后分别在每台机器的/soft/zookeeper-data 下创建myid文件存储该机器的标识码 比如server.1 的标识码就是 “1” myid文件的内容就一行 “1”
配置完一台可以使用scp 把配置发到其他两台(使用scp前提是配置了无密钥通信的机器之间,省的来回换机子麻烦)。
Scp –r /soft/zookeeper.3.4.5 master@slave1:/soft/zookeeper.3.4.5
Scp –r /soft/zookeeper.3.4.5 master@slave2:/soft/zookeeper.3.4.5
或者每台手动做修改
配置完成启动服务(启动切记关闭所有的防火墙,不然启动状态会没有角色说明)
Cd /soft/zookeeper.3.4.5/bin
./zkServer.sh start
//查看启动状态
./zkServer.sh status
查看启动的监听客户端的端口是2181 默认
Mode:leader表示的是该zookeeper在集群中的角色
像上述这样表名zookeeper的集群启动成功。
Solrcloud分布式集群
解压D:\apache-solr-4.3.0\example\webapps\solr.war
并将solr-4.3.1\example\lib\ext下面的jar 拷贝到解压后的solr/WEB-INF/lib下
创建/usr/local/solrcloud目录
在目录/usr/local/solrcloud/config-files 放置solr的所有配置文件比如solrconfig.xml
该目录下的所有配置文件是 D:\apache-solr-4.3.0\example\solr\collection1\conf 下的所有文件
schema.xml 等
在目录/usr/local/solrcloud/solr-lib放置solr/WEB-INF/lib下的所有jar包
将整理好的solr项目拷贝到/soft/apache-tomcat-6.0.37/webapps下
创建solr的数据目录/soft/solr-cores
并在该目录下生成solr.xml solr的核配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
<logging enabled="true">
<watcher size="100" threshold="INFO" />
</logging>
<cores adminPath="/admin/cores" host="${host:}" hostPort="8080" hostContext="${hostContext:solr}" zkClientTimeout="${zkClientTimeout:15000}">
</cores>
</solr>
在/soft/apache-tomcat-6.0.37/conf/Catalina/localhost
创建solr.xml
Solr/home的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/soft/apache-tomcat-6.0.37/webapps/solr" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/soft/solr-cores" override="true"/>
</Context>
同时修改tomcat/bin/cataina.sh
JAVA_OPTS="-DzkHost=master:2188,slave1:2188,slave2:2188"
把修改好的tomcat 打包tomcat.zip 发送到slave1,slave2
Scp tomcat.zip root@slave1:/soft/
Scp tomcat.zip root@slave2:/soft/
./zkCli.sh -server master:2188 //连接zookeeper查看上面的文件存储情况
上传配置文件到zookeeper
java -classpath .:/usr/local/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost master:2188 -confdir /usr/local/solrcloud/config-files/ -confname myconf
连接zookeeper的配置内容
java -classpath .:/usr/local/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection collection -confname myconf -zkhost master:2188
cd apache-tomcat-6.0.37/bin
./startup.sh
访问solr url:http://192.168.139.121:8080/solr
因为没有穿件任何核和节点所以 会有如下的提示页
//创建数据集collection 并指定 分片数,冗余节点数
curl 'http://192.168.139.121:8080/solr/admin/collections?action=CREATE&
name=mycollection&numShards=1&replicationFactor=1&maxShardsPerNode=1’
生成的节点信息 (单节点的)
多节点
三台机器的情况:
java -classpath .:/usr/local/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost master:2188,slave1:2188,slave2:2188 -confdir /usr/local/solrcloud/config-files/ -confname myconf
连接zookeeper的配置信息
java -classpath .:/usr/local/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection collection -confname myconf -zkhost master:2188,slave1:2188,slave2:2188
创建collection 指定最多3个分片和冗余节点
curl 'http://192.168.139.121:8080/solr/admin/collections?action=CREATE&name=collection&numShards=3&replicationFactor=3&maxShardsPerNode=3'
执行完无报错信息 说明成功了
建好的collection 还创建未分片
正常的创建效果应该是这样的
/soft/solr-cores/下会多出索引的存储目录
创建分片和副本
//122,123上
//创建121的分片和副本
curl 'http://192.168.139.122:8080/solr/admin/cores?action=CREATE&name=collection_shard1_replica_2&collection=collection&shard=shard1'
curl 'http://192.168.139.123:8080/solr/admin/cores?action=CREATE&name=collection_shard1_replica_2&collection=collection&shard=shard1'
//121,123
//创建122的分片和副本
curl 'http://192.168.139.121:8080/solr/admin/cores?action=CREATE&name=collection_shard2_replica_2&collection=collection&shard=shard2'
curl 'http://192.168.139.123:8080/solr/admin/cores?action=CREATE&name=collection_shard2_replica_2&collection=collection&shard=shard2'
//122,121
//创建123的分片和副本
curl 'http://192.168.139.121:8080/solr/admin/cores?action=CREATE&name=collection_shard3_replica_3&collection=collection&shard=shard3'
curl 'http://192.168.139.122:8080/solr/admin/cores?action=CREATE&name=collection_shard3_replica_3&collection=collection&shard=shard3'
转自:http://my.oschina.net/yugm/blog/183311
相关问答
更多-
怎样在hadoop伪分布式集群上安装mysql[2022-03-17]
先回答你标题的提问:hadoop完全分布式:3个及以上的实体机或者虚拟机组件的机群。hadoop伪分布式:一个节点看了以上两点相信你已经明白了,“用vm多装几个unbuntu配置完全分布式,然后做实验”这是完全可行的。实际上我们通常也是这么做的,当然可能要求你的电脑cpu和内存足够支撑你这一计划。一点建议:如果你要开发基于Hadoop的分布式程序,伪分布式足够你实验了。如果你要做很多其他事情,比如玩玩cm,玩玩oozie,玩玩hbase,建议装多个虚拟机。 -
分布式数据库 与 集群数据库 之间的关系[2022-09-09]
问题1: 首先认清楚:集群是个物理形态,分布式是个工作方式。 分布式:一个业务分拆多个子业务,部署在不同的服务器上; 集群:同一个业务,部署在多个服务器上。 问题2: 跨机房要根据网络线上IP数据同步 如果同步到当前操作电脑必须 对方IP必须能通 ,然后在进行相关操作!(比如日志同步数据 、工具同步数据、触发器存储过程同步数据等) 问题3: oralce、MySQL等(具体要看你做那些分布式操作) -
分布式web应用集群,应用部署是怎么全部部署的[2023-08-17]
1)比方说我先在有5台服务器,想做一个集群,是不是意味着我要把应用程序在5台服务器上分别部署?如果这样的话,session能使先共享吗? 根据中间件不同部署方式也不同。tomcat下面就要分别部署了,weblogic支持分别部署,也支持统一部署(两种方式各有优缺点,推荐分别部署)。 中间件基本上都支持session共享复制,不过实现方式可能有点区别(有的是基于容器,有的是基于memcache等等)。可参考之前的问题(关于jboss的): -
Hadoop集群中namenode节点需要安装zookeeper吗[2022-05-23]
ZooKeeper是一个独立的组件,它可以和HDFS配合使用,但没有非得部署在一起的要求,只要网络通就可以。 另外,ZooKeeper建议最少安装在3个节点上,且数目为奇数。 -
zookeeper在大数据分布式集群中的作用有哪些[2022-12-06]
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理、Leader 选举、队列管理等。 -
学习hadoop到底是部署伪分布式还是安装集群[2023-03-30]
先回答你标题的提问:hadoop完全分布式:3个及以上的实体机或者虚拟机组件的机群。hadoop伪分布式:一个节点看了以上两点相信你已经明白了,“用vm多装几个unbuntu配置完全分布式,然后做实验”这是完全可行的。实际上我们通常也是这么做的,当然可能要求你的电脑cpu和内存足够支撑你这一计划。一点建议:如果你要开发基于Hadoop的分布式程序,伪分布式足够你实验了。如果你要做很多其他事情,比如玩玩cm,玩玩oozie,玩玩hbase,建议装多个虚拟机。 -
hadoop配置了集群,但启动仍然是伪分布式下的启动状态[2022-08-22]
你可以输入JPS查看一下进程 一般你的master上是namenode secondarynamenode 和jobtracker三个进程 你的slaves上 有各自的datanode 和tasktracker两个进程 你看看是不是有各自进程都启动起来了 启动起来了就是分布式 如果只有一台机子有进程 那你就重新把那些配置文件再设置一下 -
hadoop 集群 和 hadoop 分布式 怎么理解啊[2022-02-07]
hadoop集群指的是一群机器在一起提供一个hadoop的集群的服务。 hadoop分布式指的是hadoop支持任务分布式运行,因为有hadoop集群提供服务,所以hadoop将任务分发到集群的多台机器运行,所以叫做分布式。 一个是服务器架构,一个是任务运行架构。 -
“分布式”与“集群”的区别是什么?[2022-01-05]
集群是个物理形态,分布式是个工作方式。 只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道;一个程序或系统,只要运行在不同的机器上,就可以叫分布式,嗯,C/S架构也可以叫分布式。 集群一般是物理集中、统一管理的,而分布式系统则不强调这一点。 所以,集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统;分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台(2台也算多台)机器上。 -
只需按照群集设置指南操作: https://storm.apache.org/documentation/Setting-up-a-Storm-cluster.html 对于伪分布式设置,请在单台计算机中运行所有守护程序(ZK,Nimbus和一个单独的主管)。 Just follow the cluster setup guide: https://storm.apache.org/documentation/Setting-up-a-Storm-cluster.html For pseudo distri ...