Solr是一个企业级搜索服务器,对外提供Web-Service接口,用户可以通过http请求,向搜索引擎提交xml或者json格式的数据,生成索引;然后可以通过http get请求查找,获取返回的xml或者json等多种格式的数据。
首先去官网下载solr安装包,网址是:https://lucene.apache.org/solr/ 进入后单击导航栏的DOWNLOAD按钮,稍等几秒页面会自动跳转至镜像选择页面,选择相应的服务器即可,比如此时我的最终网址为:http://mirror.bit.edu.cn/apache/lucene/solr/5.4.1/当然我们要下载其他版本直接将后面的5.1.4目录去掉,访问上一级即可,这时候就可以选择相应的版本了,我这里选择solr 5.2.1的版本配置,这里我下载solr-5.2.1.tgz安装包
下载完之后上传到服务器指定目录,安装solr的前提是必须配置zookeeper,当然包括一系列的主机名网络配置等等,在配置好zookeeper的前提下,另外要关闭防火墙,一定要3台机器都先启动zookeeper服务,这里三台主机分别为:hadoopha,hadoop1,hadoop2
做好准备工作后就可以开始安装了,进入solr安装包所在的目录,执行命令提取安装脚本:
tar xzf solr-5.2..tgz solr-5.2./bin/install_solr_service.sh --strip-components=
释放完脚本之后开始执行安装
./install_solr_service.sh solr-5.2..tgz -i /opt -d /var/solr -u solr -s solr -p
其中参数的意义-i代表安装的目录,默认为/opt;-d指定solr写文件的目录,包括索引、日志、初始配置等,默认为/var/solr;-u指定solr文件和进程所属用户,默认为solr,在安装过程中脚本会自动创建solr账号;-s指定创建到系统服务的名称,默认是solr,也就是/etc/init.d/solr可以用service来启动;-p指定服务的监听端口默认为8983。可以看出上面指定的参数都是默认所以安装命令可以等效为:
./install_solr_service.sh solr-5.2..tgz
稍微等待安装成功服务就自动启动了,接下来修改配置文件
vim /var/solr/solr.in.sh
将SOLR_JAVA_MEM前的#去掉,默认为:SOLR_JAVA_MEM="-Xms512m -Xmx512m",这个根据自己计算机的硬件配置进行设置,我这里虚拟机内存为1G,所以这里直接默认512m没有修改。
然后同样的方式配置ZK_HOST="hadoopha:2181,hadoop1:2181,hadoop2:2181"这里指定的是zookeeper所有节点的列表,用英文逗号分隔,如果是为了统一放在zookeeper下的指定节点中,比如/solr下,那么应该写成:ZK_HOST="hadoopha:2181,hadoop1:2181,hadoop2:2181/solr",到运行的时候这个节点需要自己进行create
然后配置SOLR_HOST="hadoopha"
根据上面的注释解释可以知道,当单机测试时默认使用localhost;生产环境中应该使用所在集群中的名称,因此这里应配置本机的主机名,待会其他两个节点应该分别填写hadoop1、hadoop2
到这里就配置完了,保存退出,然后使用命令:/etc/init.d/solr restart启动solr
然后其他两个节点进行相同的配置,最终都启动起来
接下来测试新建一个collection,进入其中任何一台主机,分别执行下面命令:
$ cd /opt/solr/server/scripts/cloud-scripts
$ ./zkcli.sh -zkhost localhost: -cmd upconfig -confdir /opt/solr/server/solr/configsets/sample_techproducts_configs/conf -confname test
同样说明,如果上面指定了zookeeper的地址是/solr,那么-zkhost参数应该写localhost:2181/solr
好了,执行到这就完成了上传配置操作,然后新建collection:
curl "http://192.168.1.42:8983/solr/admin/collections?action=CREATE&name=test&numShards=3&replicationFactor=3&maxShardsPerNode=3&collection.configName=test"
或者直接用浏览器访问上面的url就建立好了一个test的collection,几台节点之间都可以创建副本从而进行同步检索,可以通过浏览器访问http://192.168.1.42:8983/solr点击Cloud->Graph可以看到节点的分布情况
到这里Solr集群就配置完毕了,可以用多种方式灵活的添加索引进行检索等等更多的API可以参考官方wiki:http://wiki.apache.org/solr/