zhouer 发表于 2017-12-20 07:51:13

Solr5.2.1+Zookeeper3.4.8分布式集群搭建

  1.选取三台服务器
  由于机器比较少,现将zookeeper和solr都部署在以下三台机器上。(以下操作都是在172.16.20.101主节点上进行的哦)
  172.16.20.101 主节点
  172.16.20.102 从节点
  172.16.20.103 从节点
  2.Zookeeper集群部署
  1)访问官网下载zookeeper安装包,我用的是zookeeper-3.4.8.tar.gz
  2)解压安装包,我是解压到自己新建的目录/data/zookeeper下。
  tar -zxvf zookeeper-3.4.8.tar.gz
  3)在/data/zookeeper目录下新建data,logs两个文件夹。
  4)进入zookeeper-3.4.8/conf目录,把zoo_sample.cfg文件改成zoo.cfg
  cp zoo_sample.cfg zoo.cfg
  5)修改zoo.cfg文件,需要修改以下几个地方
  dataDir=/data/zookeeper/data
  dataLogDir=/data/zookeeper/logs
  clientPort=2181
  在文件末尾添加:
  server.1=172.16.20.101:2888:3888
  server.2=172.16.20.102:2888:3888
  server.3=172.16.20.103:2888:3888
  6)将配置好的zookeeper复制到另外两台服务器上。
  scp -r /data/zookeeper root@172.16.20.102:/data
  scp -r /data/zookeeper root@172.16.20.103:/data
  7)分别在三台服务器的/data/zookeeper/data目录下新建myid文件,内容分别为server.1,server.2,server.3后面的数字,例如:
  echo "1" > myid
  8)分别进入三台服各器的/data/zookeeper/zookeeper-3.4.8/bin目录下,启动服务。
  ./zkServer.sh start
  9)启动完成后,查看服务状态。
  ./zkServer.sh status
  3.Solr分布式集群部署
  1)访问Apache官网下载solr安装包,我用的是solr-5.2.1.zip包。
  2)解压安装包,我是解压到自己新建的目录/data/solr下。
  unzip solr-5.2.1.zip
  3)修改/data/solr/solr-5.2.1/bin/solr.in.sh文件
  SOLR_JAVA_MEM="-Xms1G -Xmx1G"
  ZK_HOST="172.16.20.101:2181,172.16.20.102:2181,172.16.20.103:2181"
  4)将配置好的solr复制到另外两台服务器上。
  scp -r /data/solr root@172.16.20.102:/data
  scp -r /data/solr root@172.16.20.103:/data
  5)在每个节点启动solr服务,进入/data/solr/solr-5.2.1,执行如下命令
  bin/solr start
  6)在每个节点查看solr运行状态
  bin/solr status
  7)solr集群搭建完毕,访问solr界面。
  http://172.16.20.101:8983/solr
  4.Solr集群的操作
  以下的操作均是以http://172.16.20.101:8983/solr这个开头访问的,然后跟在这个url后面才是完整的路径。如:我写的/admin/collections?action=DELETE&name=article,则访问路径是:http://172.16.20.101:8983/solr/admin/collections?action=DELETE&name=article
  4.1 创建collection
  两种方式创建collection,根据路由方式的不同:
  第一种implicit路由方式
  /admin/collections?action=CREATE&name=article&router.name=implicit&shards=shard1,shard2,shard3&maxShardsPerNode=5&collection.configName=collection3Conf
  第二种compositeId路由方式
  /admin/collections?action=CREATE&name=article&router.name=compositeId&numShards=5&replicationFactor=1&maxShardsPerNode=5&collection.configName=collection3Conf
  或者
  /admin/collections?action=CREATE&name=application&router.name=compositeId&numShards=1&replicationFactor=2&maxShardsPerNode=2&collection.configName=application&createNodeSet=172.16.20.102:8983_solr,172.16.20.103:8983_solr
  4.2删除collection
  /admin/collections?action=DELETE&name=article
  4.3增加分片shard
  implicit路由实现该需求比较简单,只要创建Shard即可。
  /admin/collections?action=CREATESHARD&collection=article&shard=shard1&name=article_shard1_replica2
  compositeId路由实现该需求稍微麻烦一下,通过分裂(SPLITSHARD)操作实现。
  /admin/collections?action=SPLITSHARD&collection=article&shard=shard1
  4.4删除分片shard
  /admin/collections?action=DELETESHARD&collection=article&shard=shard1
  4.5上传SolrCloud的配置文件到zookeeper,统一保存配置文件
  java -classpath .:/data/solr/solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 172.16.20.101:2181,172.16.20.102:2181,172.16.20.102:2181 -confdir /data/solr/solr-5.2.1/server/solr/configsets/sample_techproducts_configs/conf/ -confname collection1Conf
  4.6将上传到ZooKeeper中配置文件与Collection相关联
  java -classpath .:/data/solr/solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection collection1 -confname collection1Conf -zkhost 172.16.20.101:2181,172.16.20.102:2181,172.16.20.103:2181
  4.7将配置上传到zookeeper,如果要让正在运行的solr同步加载这些文件,需要让solr重新加载一下配置文件
  /admin/collections?action=RELOAD&name=article
页: [1]
查看完整版本: Solr5.2.1+Zookeeper3.4.8分布式集群搭建