先准备好环境,下载solr6.6.0,jdk8,zookeeper3.4.10 。当前最新的solr是6.6.0 。如果想快速运行solr cloud还是看官方的《Getting Started with SolrCloud》 ,本例是介绍配置最简外部zookeeper,手动建node与shard和solr配置.
1.启动zookeeper。
如121.42.xx.xx:12181
zookeeper linux环境搭建步骤如下:
a.下载
http://apache.fayea.com/zookeeper/zookeeper-3.4.10/
b. 解压
tar -xvf zookeeper-3.4.10.tar.gz
c.配置文件
cd zookeeper-3.4.10/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg 把下面的端口改一下,原配置里的2181可能已经被用。
clientPort=12181
d.启动zkServer.sh
cd ../bin
./zkServer.sh start
2.启动solr。
新建testnode文件夹,里面放入solr.xml.进入solr/bin目录,执行以下命令
solr start -c -p 8983 -s ../example/cloud/testnode -z 121.42.xx.xx:12181
解释一下参数
-c 就是-cloud以solr云模式启动。
-p 8983 solr会用自己的jetty作为服务器启动,而jetty使用的web端口是8983
-s ../example/cloud/testnode/solr 指定配置文件路径
-z 121.42.xx.xx:12181 指定zookeeper地址
3.使用solrj上传配置文件。
zkCli命令没传成功不知为啥。把以下3行代码放入main函数执行,目录自己换下。
SolrZkClient zkClient=new SolrZkClient("121.42.xx.xx:12181",3000);
ZkConfigManager confManager = new ZkConfigManager(zkClient);
confManager.uploadConfigDir(Paths.get("E:/work/solr/solr_cloud/solr-6.2.1/server/solr/configsets/data_driven_schema_configs/conf"),
"chzhConfig");
注意这个data_driven_schema_configs/conf的conf文件夹是schemal.xml、solrconfig.xml等文件的上一层文件夹.
执行上面代码需要的maven包:
solr-solrj
org.apache.solr
${solrj.version}
用真实版本替换${solrj.version}哈。
4.创建collections与其对应的Shards。
使用第三步上传的chzhConfig。在浏览器访问:
方法一:
进入solr控制台,可以看见刚在创建的配置,使用这个配置创建collection.
这里如果ik,自定义simlilarity等需要同步后才能创建成功。jetty的放置位置与tomcat不同,在solr-x.x.0/server/solr-webapp/webapp/WEB-INF/lib里
方法二:
http://localhost:8983/solr/admin/collections?action=CREATE&name=chzh&numShards=2&replicationFactor=1&maxShardsPerNode=5&collection.configName=chzhConfig
以下两步是添加node与replica core的方法,可根据需要多添加几个。
5.添加一个node,与第2步一样建node2文件夹。
现在只有一个节点(node),如下图。如果要数据分发到多台机器,那么需多个节点。
复制一个solr压缩包到新的机器(同一机器可创建新目录),和上面创建testnode方法一样,创建一个再创建一个node2。
solr start -c -p 8973 -s ../example/cloud/testnode2/solr -z 121.42.xx.xx:12181
6.在第4步添加的node2上加入replica。
如下图:
添加后再查看clode视图,就可以看见两个node,如下:
好了,现在基础环境已经搭好了。下文介绍下如何导入数据。