1. 概述

  Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库;

  Solr是以Lucene为基础实现的文本检索应用服务。Solr部署方式有单机方式、Cloud方式。

  SolrCloud是基于Solr和Zookeeper的分布式搜索方案。当索引越来越大,一个单一的系统无法满足磁盘需求,查询速度缓慢,此时就需要分布式索引。在分布式索引中,原来的大索引,将会分成多个小索引,solr可以将这些小索引返回的结果合并,然后返回给客户端。

  solr安装,目前是作为Ranger审计日志的存储,故这里使用的是Ranger-admin里面存在的solr便捷安装方式,可以通过配置文件来直接配置,一键部署。

  ranger solr的便捷式安装来源,首先需要编译ranger,可以参考https://www.cnblogs.com/swordfall/p/11887317.html

2. 单机Standalone安装

2.1 修改install.properties文件

# pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-admin/contrib/solr_for_audit_setup
# vim install.properties
配置java home路径
JAVA_HOME=/usr/lib/java/jdk1..0_151

审计日志保存的最大天数,默认为90天
MAX_AUDIT_RETENTION_DAYS=90
false改为true
SOLR_INSTALL=true solr线上下载路径
SOLR_DOWNLOAD_URL=http://archive.apache.org/dist/lucene/solr/8.3.0/solr-8.3.0.tgz solr安装目录
SOLR_INSTALL_FOLDER=/opt/app/ranger-solr-8.3.-simple

solr对接ranger的服务
SOLR_RANGER_HOME=/opt/app/ranger-solr-8.3.0-simple/ranger_audit_server
solr连接ranger的端口
SOLR_RANGER_PORT= solr部署模式
SOLR_DEPLOYMENT=standalone solr数据存储目录
SOLR_RANGER_DATA_FOLDER=/opt/app/ranger-solr-8.3.-simple/ranger_audit_server/data solr单机部署,故为空
SOLR_ZK=

2.2 初始化solr安装脚本

# pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-admin/contrib/solr_for_audit_setup
# ./setup.sh

  初始化结果如下,表明成功:

  启动单机版solr

# pwd
/opt/app/ranger-solr-8.3.-simple/ranger_audit_server/scripts
# ./start_solr.sh

  启动结果如下,则表明成功:

  注:具体操作可以查看如下文件

# pwd
/opt/app/ranger-solr-8.3.-simple/ranger_audit_server
# vim install_notes.txt

2.3 修改ranger-admin install.properties文件

# pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-admin
# vim install.properties
审计日志存储为solr
audit_store=solr audit_solr_urls=http://bridge1:6083/solr/ranger_audits
audit_solr_user=
audit_solr_password=
audit_solr_zookeepers=

  重新初始化ranger-admin,并重启

# ranger-admin stop
Getting pid from /var/run/ranger/rangeradmin.pid ..
Found Apache Ranger Admin Service with pid , Stopping it...
Apache Ranger Admin Service with pid has been stopped. # pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-admin
# ./setup.sh # ranger-admin start
Starting Apache Ranger Admin Service
Apache Ranger Admin Service with pid has started.

  查看单机版solr是否已经集成到ranger-admin里面,右上角没报错,则已经集成到ranger-admin。

3. SolrCloud安装

3.1 机器准备

  solrcloud至少需要三台机器

3.2 修改install.properties文件

# pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-admin/contrib/solr_for_audit_setup
# vim install.properties
配置java home路径
JAVA_HOME=/usr/lib/java/jdk1..0_151
审计日志保存的最大天数,默认为90天
MAX_AUDIT_RETENTION_DAYS=90
false改为true
SOLR_INSTALL=true solr线上下载路径
SOLR_DOWNLOAD_URL=http://archive.apache.org/dist/lucene/solr/8.3.0/solr-8.3.0.tgz solr安装目录
SOLR_INSTALL_FOLDER=/opt/app/ranger-solr-8.3.-cloud solr对接ranger的服务
SOLR_RANGER_HOME=/opt/app/ranger-solr-8.3.-cloud/ranger_audit_server solr连接ranger的端口
SOLR_RANGER_PORT= solr部署模式
SOLR_DEPLOYMENT=solrcloud solr数据存储目录
SOLR_RANGER_DATA_FOLDER=/opt/app/ranger-solr-8.3.-cloud/ranger_audit_server/data solrcloud在zookeeper上的路径
SOLR_ZK=bridge1:,bridge2:,bridge3:/ranger_audits ranger连接solr的路径,${SOLR_RANGER_PORT}需要改为6083,与上面的SOLR_RANGER_PORT值一样
SOLR_HOST_URL=http://`hostname -f`:6083

3.3 初始化solr安装脚本

# pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-admin/contrib/solr_for_audit_setup
# ./setup.sh

  初始化结果如下,表明成功:

3.4 solr审计日志保存时间配置

  审计日志保存时间,可以根据3.2 修改install.properties文件的MAX_AUDIT_RETENTION_DAYS,进行保存时间的调整。

最终审计日志保存时间是保存在solrconfig.xml文件,文件路径为/opt/app/ranger-solr-8.3.0-cloud/ranger_audit_server/conf,并把sorlconfig.xml文件更新到zookeeper上。solrconfig.xml配置文件内容为:

<updateRequestProcessorChain name="add-unknown-fields-to-the-schema">
<processor class="solr.DefaultValueUpdateProcessorFactory">
<str name="fieldName">_ttl_</str>
<str name="value">+90DAYS</str>
</processor>
<processor class="solr.processor.DocExpirationUpdateProcessorFactory">
<int name="autoDeletePeriodSeconds">86400</int>
<str name="ttlFieldName">_ttl_</str>
<str name="expirationFieldName">_expire_at_</str>
</processor>
<processor class="solr.FirstFieldValueUpdateProcessorFactory">
<str name="fieldName">_expire_at_</str>
</processor> <processor class="solr.RemoveBlankFieldUpdateProcessorFactory"/>
<processor class="solr.ParseBooleanFieldUpdateProcessorFactory"/>
<processor class="solr.ParseLongFieldUpdateProcessorFactory"/>
<processor class="solr.ParseDoubleFieldUpdateProcessorFactory"/>
<processor class="solr.ParseDateFieldUpdateProcessorFactory">
<arr name="format">
<str>yyyy-MM-dd'T'HH:mm:ss.SSSZ</str>
<str>yyyy-MM-dd'T'HH:mm:ss,SSSZ</str>
<str>yyyy-MM-dd'T'HH:mm:ss.SSS</str>
<str>yyyy-MM-dd'T'HH:mm:ss,SSS</str>
<str>yyyy-MM-dd'T'HH:mm:ssZ</str>
<str>yyyy-MM-dd'T'HH:mm:ss</str>
<str>yyyy-MM-dd'T'HH:mmZ</str>
<str>yyyy-MM-dd'T'HH:mm</str>
<str>yyyy-MM-dd HH:mm:ss.SSSZ</str>
<str>yyyy-MM-dd HH:mm:ss,SSSZ</str>
<str>yyyy-MM-dd HH:mm:ss.SSS</str>
<str>yyyy-MM-dd HH:mm:ss,SSS</str>
<str>yyyy-MM-dd HH:mm:ssZ</str>
<str>yyyy-MM-dd HH:mm:ss</str>
<str>yyyy-MM-dd HH:mmZ</str>
<str>yyyy-MM-dd HH:mm</str>
<str>yyyy-MM-dd</str>
</arr>
</processor>
<processor class="solr.AddSchemaFieldsUpdateProcessorFactory">
<str name="defaultFieldType">key_lower_case</str>
<lst name="typeMapping">
<str name="valueClass">java.lang.Boolean</str>
<str name="fieldType">boolean</str>
</lst>
<lst name="typeMapping">
<str name="valueClass">java.util.Date</str>
<str name="fieldType">tdate</str>
</lst>
<lst name="typeMapping">
<str name="valueClass">java.lang.Long</str>
<str name="valueClass">java.lang.Integer</str>
<str name="fieldType">tlong</str>
</lst>
<lst name="typeMapping">
<str name="valueClass">java.lang.Number</str>
<str name="fieldType">tdouble</str>
</lst>
</processor>
<processor class="solr.LogUpdateProcessorFactory"/>
<processor class="solr.RunUpdateProcessorFactory"/>
</updateRequestProcessorChain>

解析:

  • solr.DefaultValueUpdateProcessorFactory 属性_ttl_的value,可以控制审计日志的过期时间,当前默认是90天后过期;该配置项支持配置的参数可以是+10DAYS, +2WEEKS,+4HOURS,+1MINUTE等等。
  • autoDeletePeriodSeconds ,是执行扫描过期数据的定时任务的运行周期,当前默认是86400s,即1天运行一次定时任务,该参数的时间应该小于参数DefaultValueUpdateProcessorFactory配置的时间,从而保证过期的数据能够被及时删除。
  • FirstFieldValueUpdateProcessorFactory 的属性_expire_at_是数据的过期时间字段名称。

3.5 远程拷贝ranger-solr-8.3.0-cloud到其他机器

# pwd
/opt/app
# scp -r ranger-solr-8.3.-cloud/ root@bridge2:/opt/app/
# scp -r ranger-solr-8.3.-cloud/ root@bridge3:/opt/app/

3.6 启动ranger-solr-8.3.0-cloud

  首先,分别在三台机器启动zookeeper,zookeeper安装,参考https://www.cnblogs.com/swordfall/p/8667409.html

# pwd
/opt/app/zookeeper-3.4./bin
# ./zkServer.sh start

  然后,在三台机器分别执行如下命令,创建/var/log/solr/ranger_audits,并赋予solr/solr 用户名、用户组,否则启动solrcloud会报错。紧接着,在其中一台机器执行add_ranger_audits_conf_to_zk.sh文件,使solrcloud与zookeeper关联上。

# mkdir -p /var/log/solr/ranger_audits
# chown solr:solr /var/log/solr/ranger_audits # pwd
/opt/app/ranger-solr-8.3.-cloud/ranger_audit_server/scripts
# ./add_ranger_audits_conf_to_zk.sh

  再接着,在三台机器下分别启动solrcloud

pwd
/opt/app/ranger-solr-8.3.-cloud/ranger_audit_server/scripts
# ./start_solr.sh

  最后,在其中一台机器执行create_ranger_audits_collection.sh文件,在zookeeper上创建ranger_audits集合

# pwd
/opt/app/ranger-solr-8.3.-cloud/ranger_audit_server/scripts
# ./create_ranger_audits_collection.sh

  最后的最后,启动结果如下,则表明成功:

  注:具体操作可以查看如下文件

# pwd
/opt/app/ranger-solr-8.3.0-cloud/ranger_audit_server
# vim install_notes.txt

3.7 修改ranger-admin install.properties文件

# pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-admin
# vim install.properties
审计日志存储为solr
audit_store=solr audit_solr_urls=http://bridge1:6083/solr/ranger_audits
audit_solr_user=
audit_solr_password=
audit_solr_zookeepers=bridge1:,bridge2:,bridge3:/ranger_audits

  重新初始化ranger-admin,并重启

# ranger-admin stop
Apache Ranger Admin Service is not running # pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-admin
# ./setup.sh # ranger-admin start
Starting Apache Ranger Admin Service
Apache Ranger Admin Service with pid has started

  查看集群版solrcloud是否已经集成到ranger-admin里面,右上角没报错,则已经集成到ranger-admin。

总结

【参考资料】

https://segmentfault.com/a/1190000010836061#item-1

https://www.cnblogs.com/hellxz/p/7434588.html

https://www.cnblogs.com/yjt1993/p/11837398.html

http://blog.sina.com.cn/s/blog_167a8c6480102xrax.html Ranger-solr安装及审计日志配置(Standalone和SolrCloud模式)

https://blog.csdn.net/qq_39056805/article/details/80739659 SolrCloud的搭建以及在Java中的使用(solr集群)

Ranger安装部署 - solr安装的更多相关文章

  1. VS2013没有安装部署,安装图解

    自vs2012后就已经没有安装向导了,VS2013安装是不带安装部署的,用 InstallShield Limited Edition for Visual Studio 解决安装部署问题 第一步:“ ...

  2. 【Solr】Solr的安装部署

    目录 Solr安装部署 Solr Web界面分析 回到顶部 solr安装和部署 solr下载 http://lucene.apache.org/ 安装solr,就是去部署它的war包,war包所在的位 ...

  3. Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  4. HBase集群安装部署

    0x01 软件环境 OS: CentOS6.5 x64 java: jdk1.8.0_111 hadoop: hadoop-2.5.2 hbase: hbase-0.98.24 0x02 集群概况 I ...

  5. zabbix的安装部署及自定义监控的实现

    此篇感谢我的小师傅. 1. Zabbix主要功能和优劣势说明 1. Zabbix主要功能和优劣势说明 1.1 Zabbix主要功能: 1)Application monitoring 应用监控 数据库 ...

  6. Zookeeper介绍及安装部署

    本节内容: Zookeeper介绍 Zookeeper特点 Zookeeper应用场景 用到了Zookeeper的一些系统 Zookeeper集群安装部署 一.Zookeeper介绍 是一个针对大型分 ...

  7. dubbo 安装部署

    dubbo 安装部署   1 安装zookeeper 2 安装dubbo    1 下载源码 https://github.com/alibaba/dubbo 2 编译 mvn clean packa ...

  8. 【Thrift一】Thrift安装部署

    Thrift安装部署 Thrift安装部署 下载源码包 安装g++ 解压Thrift安装包 安装boost开发工具 测试(python版) 下载源码包 wget http://apache.fayea ...

  9. 微服务监控神器Prometheus的安装部署

    本文涉及:如何在k8s下搭建Prometheus+grafana的监控环境 基本概念 Prometheus提供了容器和云原生领域数据搜集.存储.处理.可视化和告警一套完整的解决方案,最初时是由Soun ...

随机推荐

  1. 百度AI文本审核API使用说明

    虽然,虽然,虽然,今天: 百度发布了2019年第一季度未经审计的财务报告.本季度百度营收241亿元人民币(约合35.9亿美元),同比增长15%,移除业务拆分收入影响,同比增长21%.低于市场预期242 ...

  2. 使用Android SDK卸载厂家程序

    ADB下载: 官网翻墙比较慢,这里推荐使用国内网站:https://www.androiddevtools.cn/ 下载  SDK Tools  和  SDK Platform-Tools: 两者分别 ...

  3. Elasticsearch进阶篇(一)~head插件的安装与配置

    1.安装node.js 1.1.通过官网下载二进制安装包 https://nodejs.org/en/download/ 选择对应的版本,右键复制下载链接,进入linux目录,切换到要安装目录的磁盘. ...

  4. composer安装FOSUserBundle内存溢出

    内存溢出异常: Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 4096 bytes ...

  5. 【LEETCODE】70、字符匹配1023 Camelcase Matching

    最近做leetcode总感觉自己是个智障,基本很少有题能自己独立做出来,都是百度... 不过终于还是做出了一题...而且速度效率还可以 哎,加油吧,尽量锤炼自己 package y2019.Algor ...

  6. ubuntu 使用阿里云镜像源快速搭建kubernetes 1.15.2集群

    一.概述 搭建k8s集群时,需要访问google,下载相关镜像以及安装软件,非常麻烦. 正好阿里云提供了k8s的更新源,国内用户就可以直接使用了. 二.环境介绍 操作系统 主机名 IP地址 功能 配置 ...

  7. MySQL单表数据量过千万,采坑优化记录,完美解决方案

    问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死.严重影响业务 ...

  8. .Net Core WepApi-JWT认证

    JWT 介绍 JWT(Json Web Token)是一种开放标准,已Json对象的方式在各方之间安全地传输信息 JWT登陆状态不在服务器端进行存储,而是通过秘钥生成一个具有有效时间的Token返回给 ...

  9. C# 的ToString 常用方法

    货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025E 科学型 25000.ToString(&q ...

  10. Raft选举算法

    目标:分布式集群中,选举Leader,保持数据一致性   集群中每个节点都有三种状态: Follower:纯小弟 Candidate:候选人.我原来是小弟,但我现在想当老大 Leader:老大 集群状 ...