本文基于Cloudera Manager5.0.0,全部服务基于CDH5.0.0 parcel安装。java
CM 安装solr是很是方便的,在集群上添加服务就好了,solrcloud须要zookeeper集群的支持,因此添加solr服务以前,先添加zookeeper服务。在此不赘述。ide
本文从添加好solr服务以后开始提及,我有4个主机,因此添加solr服务的时候我添加了4个solr server,每台主机一个,在选择相应的zookeeper服务启动solr服务以后,这四个节点就在同一个solrcloud集群里面了。工具
cm装好的solr服务默认是没有collection的。咱们能够利用cloudera提供的一个脚本工具来管理solrcloud,该工具为:solrctlpost
$ solrctl --help usage: /usr/bin/solrctl [options] command [command-arg] [command [command-arg]] ... Options: --solr solr_uri --zk zk_ensemble --help --quiet Commands: init [--force] instancedir [--generate path] [--create name path] [--update name path] [--get name path] [--delete name] [--list] collection [--create name -s <numShards> [-c <collection.configName>] [-r <replicationFactor>] [-m <maxShardsPerNode>] [-n <createNodeSet>]] [--delete name] [--reload name] [--stat name] [--deletedocs name] [--list] core [--create name [-p name=value]...] [--reload name] [--unload name] [--status name]
solr服务首次启动的时候,会在hdfs上建立/solr目录,还会在zookeeper上建立/solr节点,zookeeper上的/solr节点下面用来保存了solrcloud的相关配置信息。ui
因为如今solrcloud上是没有collection的,咱们先建立一个collection,命名为collection1,在建立 collection1以前,首先要将配置信息上传到zookeeper上,咱们这里就将solr自带的examples里面的那个solr目录下面的 collection1的配置上传,对应cm安装的集群,这个目录在/opt/cloudera/parcels/CDH/share/doc /solr-doc-4.4.0+cdh5.0.0+178/example/solr目录下面,咱们用:url
sudo -u solr solrctl instancedir --create collection1 /opt/cloudera/parcels/CDH/share/doc/solr-doc-4.4.0+cdh5.0.0+178/example/solr/collection1code
执行该命令后,会将/opt/cloudera/parcels/CDH/share/doc/solr-doc- 4.4.0+cdh5.0.0+178/example/solr/collection1下的conf目录下面的全部文件上传到zookeeper的 /solr/configs下面的collection1目录下面.server
OK,配置文件上传了,下一步是建立collection,运行以下命令:xml
sudo -u solr solrctl collection --create collection1 -s 2索引
建立一个名叫collection1的collection,有2个shard,咱们没写-c参数,就会使用默认与collection name相同的配置文件目录做为-c的默认配置,也即会使用默认的上一步上传到zookeeper的collection1目录做为默认配置目录.
OK,咱们能够检测一下collection是否建立成功,运行:solrctl collection --list,看看有没有collection1
在solr控制台管理页面上的cloud下面能够砍到图形化描述的collection1的拓扑结构,这里两个shard具体分配到哪两个server是由solrcloud本身管理的,咱们无需关心。
咱们试着给这个collection添加一个document:
cd /opt/cloudera/parcels/CDH/share/doc/solr-doc-4.4.0+cdh5.0.0+178/example/exampledocs
java -Durl=http://master68:8983/solr/collection1/update -jar post.jar ipod_video.xml
而后执行一下查询语句:http://master68:8983/solr/collection1/select?q=*:*
能够查询到刚才咱们添加的索引文件,至此,一个简单的solrcloud搭建好了。