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.0/target/ranger-2.0.0-admin/contrib/solr_for_audit_setup
# vim install.properties 
配置java home路徑
JAVA_HOME=/usr/lib/java/jdk1.8.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.0-simple
solr對接ranger的服務
SOLR_RANGER_HOME=/opt/app/ranger-solr-8.3.0-simple/ranger_audit_server
solr連接ranger的端口 SOLR_RANGER_PORT
=6083 solr部署模式 SOLR_DEPLOYMENT=standalone solr數據存儲目錄 SOLR_RANGER_DATA_FOLDER=/opt/app/ranger-solr-8.3.0-simple/ranger_audit_server/data solr單機部署,故為空 SOLR_ZK=

2.2 初始化solr安裝腳本

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

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

   啟動單機版solr

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

  啟動結果如下,則表明成功:

 

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

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

2.3 修改ranger-admin install.properties文件

# pwd
/opt/app/apache-ranger-2.0.0/target/ranger-2.0.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 104623, Stopping it...
Apache Ranger Admin Service with pid 104623 has been stopped.

# pwd
/opt/app/apache-ranger-2.0.0/target/ranger-2.0.0-admin
# ./setup.sh

# ranger-admin start
Starting Apache Ranger Admin Service
Apache Ranger Admin Service with pid 127607 has started.

  查看單機版solr是否已經集成到ranger-admin里面,右上角沒報錯,則已經集成到ranger-admin。

3. SolrCloud安裝

3.1 機器准備

  solrcloud至少需要三台機器

3.2 修改install.properties文件

# pwd
/opt/app/apache-ranger-2.0.0/target/ranger-2.0.0-admin/contrib/solr_for_audit_setup
# vim install.properties 
配置java home路徑
JAVA_HOME=/usr/lib/java/jdk1.8.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.0-cloud

solr對接ranger的服務
SOLR_RANGER_HOME=/opt/app/ranger-solr-8.3.0-cloud/ranger_audit_server

solr連接ranger的端口
SOLR_RANGER_PORT=6083

solr部署模式
SOLR_DEPLOYMENT=solrcloud

solr數據存儲目錄
SOLR_RANGER_DATA_FOLDER=/opt/app/ranger-solr-8.3.0-cloud/ranger_audit_server/data

solrcloud在zookeeper上的路徑
SOLR_ZK=bridge1:2181,bridge2:2181,bridge3:2181/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.0/target/ranger-2.0.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.0-cloud/ root@bridge2:/opt/app/
# scp -r ranger-solr-8.3.0-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.5/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.0-cloud/ranger_audit_server/scripts
# ./add_ranger_audits_conf_to_zk.sh

  再接着,在三台機器下分別啟動solrcloud

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

  最后,在其中一台機器執行create_ranger_audits_collection.sh文件,在zookeeper上創建ranger_audits集合

# pwd
/opt/app/ranger-solr-8.3.0-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.0/target/ranger-2.0.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:2181,bridge2:2181,bridge3:2181/ranger_audits

  重新初始化ranger-admin,並重啟

# ranger-admin stop
Apache Ranger Admin Service is not running

# pwd
/opt/app/apache-ranger-2.0.0/target/ranger-2.0.0-admin
# ./setup.sh 

# ranger-admin start
Starting Apache Ranger Admin Service
Apache Ranger Admin Service with pid 11465 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集群)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM