Ranger安装部署 - solr安装
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安装的更多相关文章
- VS2013没有安装部署,安装图解
自vs2012后就已经没有安装向导了,VS2013安装是不带安装部署的,用 InstallShield Limited Edition for Visual Studio 解决安装部署问题 第一步:“ ...
- 【Solr】Solr的安装部署
目录 Solr安装部署 Solr Web界面分析 回到顶部 solr安装和部署 solr下载 http://lucene.apache.org/ 安装solr,就是去部署它的war包,war包所在的位 ...
- Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- HBase集群安装部署
0x01 软件环境 OS: CentOS6.5 x64 java: jdk1.8.0_111 hadoop: hadoop-2.5.2 hbase: hbase-0.98.24 0x02 集群概况 I ...
- zabbix的安装部署及自定义监控的实现
此篇感谢我的小师傅. 1. Zabbix主要功能和优劣势说明 1. Zabbix主要功能和优劣势说明 1.1 Zabbix主要功能: 1)Application monitoring 应用监控 数据库 ...
- Zookeeper介绍及安装部署
本节内容: Zookeeper介绍 Zookeeper特点 Zookeeper应用场景 用到了Zookeeper的一些系统 Zookeeper集群安装部署 一.Zookeeper介绍 是一个针对大型分 ...
- dubbo 安装部署
dubbo 安装部署 1 安装zookeeper 2 安装dubbo 1 下载源码 https://github.com/alibaba/dubbo 2 编译 mvn clean packa ...
- 【Thrift一】Thrift安装部署
Thrift安装部署 Thrift安装部署 下载源码包 安装g++ 解压Thrift安装包 安装boost开发工具 测试(python版) 下载源码包 wget http://apache.fayea ...
- 微服务监控神器Prometheus的安装部署
本文涉及:如何在k8s下搭建Prometheus+grafana的监控环境 基本概念 Prometheus提供了容器和云原生领域数据搜集.存储.处理.可视化和告警一套完整的解决方案,最初时是由Soun ...
随机推荐
- 百度AI文本审核API使用说明
虽然,虽然,虽然,今天: 百度发布了2019年第一季度未经审计的财务报告.本季度百度营收241亿元人民币(约合35.9亿美元),同比增长15%,移除业务拆分收入影响,同比增长21%.低于市场预期242 ...
- 使用Android SDK卸载厂家程序
ADB下载: 官网翻墙比较慢,这里推荐使用国内网站:https://www.androiddevtools.cn/ 下载 SDK Tools 和 SDK Platform-Tools: 两者分别 ...
- Elasticsearch进阶篇(一)~head插件的安装与配置
1.安装node.js 1.1.通过官网下载二进制安装包 https://nodejs.org/en/download/ 选择对应的版本,右键复制下载链接,进入linux目录,切换到要安装目录的磁盘. ...
- composer安装FOSUserBundle内存溢出
内存溢出异常: Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 4096 bytes ...
- 【LEETCODE】70、字符匹配1023 Camelcase Matching
最近做leetcode总感觉自己是个智障,基本很少有题能自己独立做出来,都是百度... 不过终于还是做出了一题...而且速度效率还可以 哎,加油吧,尽量锤炼自己 package y2019.Algor ...
- ubuntu 使用阿里云镜像源快速搭建kubernetes 1.15.2集群
一.概述 搭建k8s集群时,需要访问google,下载相关镜像以及安装软件,非常麻烦. 正好阿里云提供了k8s的更新源,国内用户就可以直接使用了. 二.环境介绍 操作系统 主机名 IP地址 功能 配置 ...
- MySQL单表数据量过千万,采坑优化记录,完美解决方案
问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死.严重影响业务 ...
- .Net Core WepApi-JWT认证
JWT 介绍 JWT(Json Web Token)是一种开放标准,已Json对象的方式在各方之间安全地传输信息 JWT登陆状态不在服务器端进行存储,而是通过秘钥生成一个具有有效时间的Token返回给 ...
- C# 的ToString 常用方法
货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025E 科学型 25000.ToString(&q ...
- Raft选举算法
目标:分布式集群中,选举Leader,保持数据一致性 集群中每个节点都有三种状态: Follower:纯小弟 Candidate:候选人.我原来是小弟,但我现在想当老大 Leader:老大 集群状 ...