ranger与solr&ldap&doris集成部署

MPP
xxxxxxxx.142
xxxxxxxx.143
xxxxxxxx.144

前置环境安装
依赖环境######################################################################################################
#java -version
openjdk version “1.8.0_392”

python -V

Python 3.9.18

#which java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-3.el9.x86_64/jre/bin/java
设置环境变量
#vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-3.el9.x86_64/jre
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
刷新
#source /etc/profile

#mysql -hxxxxmmxxxx.142 -P16603 -uroot -pxxxxmmxxxx==
CREATE DATABASE ranger DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

  1. 创建用户并设置密码
    SET GLOBAL validate_password.policy = LOW;
    CREATE USER ‘ranger’@‘%’ IDENTIFIED BY ‘xxxxmmxxxx’;
  2. 授予所有权限
    GRANT ALL PRIVILEGES ON ranger.* TO ‘ranger’@‘%’;

update mysql.user set Grant_priv=‘Y’,Super_priv=‘Y’ where user=‘ranger’;
SELECT host,user,authentication_string,Grant_priv,Super_priv,authentication_string FROM mysql.user;
3. 刷新权限(可选,通常 GRANT 会自动刷新)
FLUSH PRIVILEGES;

mysql -hxxxxmmxxxx.142 -P16603 -uranger -pxxxxmmxxxx

LdapHA安装
######################################################################################################

cat /etc/redhat-release

Rocky Linux release 9.3 (Blue Onyx)

Ldap(主从)安装,两个主机都要root下操作
#######################Ldap主从配置#####################

安装

#yum localinstall -y openldap*
#rpm -qa | grep ldap
sssd-ldap-2.9.1-4.el9_3.x86_64
openldap-2.6.8-4.el9.0.1.x86_64
openldap-devel-2.6.8-4.el9.0.1.x86_64
openldap-servers-2.6.8-4.el9.0.1.x86_64
openldap-clients-2.6.8-4.el9.0.1.x86_64

启动(设置自启动)

systemctl start slapd
systemctl enable slapd
systemctl status slapd

#设置密码
slappasswd -h {md5} -s “xxxxmmxxxx”
{MD5}ZywcmQg9WAs07FG8qRFKMQ==

#vi set_rootpw.ldif
#################################################
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {MD5}ZywcmQg9WAs07FG8qRFKMQ==
#################################################
#ldapadd -Y EXTERNAL -H ldapi:/// -f set_rootpw.ldif

问题:additional info: modify/add: olcRootPW: no equality matching rule 解决办法:
修改modify.ldif中对应选项的"add"为"replace"即可

#添加基础配置
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

#添加domain配置
#ldapsearch -Y EXTERNAL -H ldapi:/// -b “cn=config” “olcDatabase=*” dn
dn: olcDatabase={2}mdb,cn=config ← 这才是正确的 DN

vi set_domain.ldif
###################################
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base=“gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth”
read by dn.base=“cn=admin,dc=gtk,dc=com” read by * none

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=gtk,dc=com

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=gtk,dc=com

dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {MD5}ZywcmQg9WAs07FG8qRFKMQ==

dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn=“cn=admin,dc=gtk,dc=com” write by anonymous auth by self write by * none
olcAccess: {1}to dn.base=“” by * read
olcAccess: {2}to * by dn=“cn=admin,dc=gtk,dc=com” write by * read
##########################################################
ldapmodify -Y EXTERNAL -H ldapi:/// -f set_domain.ldif

vi create_basedomain.ldif
##########################################################
dn: dc=gtk,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: Server com
dc: gtk

dn: cn=admin,dc=gtk,dc=com
objectClass: organizationalRole
cn: admin
description: Directory admin

dn: ou=People,dc=gtk,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=gtk,dc=com
objectClass: organizationalUnit
ou: Group
##########################################################
ldapadd -x -D cn=admin,dc=gtk,dc=com -wxxxxmmxxxx -f create_basedomain.ldif

#主从配置
master配置
##########################################################
vi sync_provider_addMode.ldif
###################################

create new

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la
####################################
ldapadd -Y EXTERNAL -H ldapi:/// -f sync_provider_addMode.ldif

vi sync_provider.ldif
#############################

create new

dn: olcOverlay=syncprov,olcDatabase={2}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100
###############################
ldapadd -Y EXTERNAL -H ldapi:/// -f sync_provider.ldif

slave配置
##########################################################
vi sync_consumer.ldif
##############################
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001
provider=ldap://xxxxxxxx.142:389/
bindmethod=simple
binddn=“cn=admin,dc=gtk,dc=com”
credentials=xxxxmmxxxx
searchbase=“dc=gtk,dc=com”
scope=sub
schemachecking=on
type=refreshAndPersist
retry=“30 5 300 3”
interval=00:00:05:00
################################
ldapadd -Y EXTERNAL -H ldapi:/// -f sync_consumer.ldif

其它memberof配置,两个节点都执行
#############################

vi memberof_conf.ldif
#############################
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
objectClass: top
olcModulePath: /usr/lib64/openldap
olcModuleLoad: memberof.la
############################
ldapadd -Y EXTERNAL -H ldapi:/// -f memberof_conf.ldif

vi memberOfOverlay.ldif
#########################
dn: olcOverlay=memberof,olcDatabase={2}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcMemberOf
olcOverlay: {0}memberof
########################
ldapadd -Y EXTERNAL -H ldapi:/// -f memberOfOverlay.ldif

测试,master节点执行
#############################
#创建 demo 用户

#设置密码
slappasswd -h {md5} -s “demo”
{MD5}/gHOKn+6yPr67XyYKgTiKQ==
查询当前最大 uidNumber,然后递增:
ldapsearch -x -b “dc=example,dc=com” “uidNumber=*” uidNumber | grep “^uidNumber:” | sort -n | tail -1

vi create_user_demo.ldif
#################################3
dn: uid=demo,ou=People,dc=gtk,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: demo
sn: demo
userPassword: {MD5}/gHOKn+6yPr67XyYKgTiKQ==
loginShell: /bin/bash
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/demo

dn: cn=demo,ou=Group,dc=gtk,dc=com
objectClass: posixGroup
cn: demo
gidNumber: 10001
memberUid: uid=demo,ou=People,dc=gtk,dc=com
########################################
ldapadd -x -D cn=admin,dc=gtk,dc=com -wxxxxmmxxxx -f create_user_demo.ldif

验证创建用户,两个主机验证同步

########################################
ldapsearch -x -b ‘ou=People,dc=gtk,dc=com’
ldapsearch -x
ldapsearch -H ldap://xxxxxxxx.142:389 -x -D “cn=admin,dc=gtk,dc=com” -w ‘xxxxmmxxxx’ -b “dc=gtk,dc=com” -s base

#ldap客户端部署,所有的主机执行
########################################
yum localinstall -y /home/openldap*
-rw-r–r-- 1 root root 262004 Jun 12 14:55 openldap-2.6.8-4.el9.0.1.x86_64.rpm
-rw-r–r-- 1 root root 178205 Jun 12 14:53 openldap-clients-2.6.8-4.el9.0.1.x86_64.rpm

同步命令,所有主机
########################################
authconfig --enableldap --enableldapauth --ldapserver=xxxxxxxx.142:389 --ldapbasedn=‘dc=gtk,dc=com’ --enablemkhomedir --update

非server主机,验证
########################################
ldapsearch -x -b ‘ou=People,dc=@@@,dc=com’
ldapwhoami -x -D “uid=ocdp,ou=People,dc=@@@,dc=com” -w ‘密码’
ldapsearch -x -b ‘ou=People,dc=@@@,dc=com’
ldapsearch -x

#sssd部署
########################################
yum install sssd -y
yum install authselect-compat-1.2.6-2.el9.x86_64 -y

authconfig --update --enablesssd

cat > /etc/sssd/sssd.conf << EOF

[sssd]
config_file_version = 2
services = nss, pam
domains = LDAP
[nss]
[pam]

[domain/LDAP]
id_provider = ldap
auth_provider = ldap
ldap_schema = rfc2307
ldap_uri = ldap://xxxxxxxx.142:389,ldap://xxxxxxxx.143:389
ldap_search_base = dc=gtk,dc=com

ldap禁用匿名绑定必填

ldap_default_bind_dn = cn=admin,dc=gtk,dc=com
ldap_default_authtok_type = password
ldap_default_authtok = xxxxmmxxxx
EOF

chmod 600 /etc/sssd/sssd.conf
rm -rf /etc/sssd/conf.d/

systemctl restart sssd
systemctl enable --now sssd
systemctl status sssd

清理缓存:sss_cache -E
验证用户:id demo

SOLR安装
######################################################################################################
https://mirrors.aliyun.com/apache/solr/solr/10.0.0/?spm=a2c6h.25603864.0.0.51965cd5suq9ws
https://mirrors.aliyun.com/apache/ranger/2.8.0/?spm=a2c6h.25603864.0.0.6043362faGlrpv

tar -zxvf ranger-2.8.0-admin.tar.gz -C /data01
tar -zxvf solr-8.11.1.tgz -C /data01

编辑/data01/ranger-2.8.0-admin/contrib/solr_for_audit_setup/install.properties
#配置JAVA路径
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-3.el9.x86_64/jre
#审计日志保存的最大天数,默认为90天
MAX_AUDIT_RETENTION_DAYS=90
#联网下载,默认为false
SOLR_INSTALL=false
#solr线上下载路径(如果SOLR_INSTALL=true,则需要配置SOLR_DOWNLOAD_URL)
#SOLR_DOWNLOAD_URL=http://archive.apache.org/dist/lucene/solr/8.3.0/solr-8.3.0.tgz
solr安装目录
SOLR_INSTALL_FOLDER=/data01/solr-8.11.1
solr对接ranger的服务
SOLR_RANGER_HOME=/data01/solr-8.11.1/ranger_audit_server
solr连接ranger的端口
SOLR_RANGER_PORT=6083
solr部署模式
SOLR_DEPLOYMENT=standalone
solr数据存储目录
SOLR_RANGER_DATA_FOLDER=/data01/solr-8.11.1/ranger_audit_server/data
SOLR_LOG_FOLDER=/data01/solr-8.11.1/ranger_audits
solr单机部署,故为空
SOLR_ZK=

将 Solr 安装目录的所有权赋予该用户

chown -R solr:solr /data01/solr-8.11.1

初始化solr安装脚本
cd /data01/ranger-2.8.0-admin/contrib/solr_for_audit_setup/
./setup.sh
启动单机版solr
cd /data01/solr-8.11.1/ranger_audit_server/scripts/
./start_solr.sh
登陆网页查看:http://xxxxxxxx.142:6083/

mysql -hxxxxxxx.142 -P16603 -uroot -pxxxxmmxxxx==
CREATE DATABASE ranger DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

  1. 创建用户并设置密码
    SET GLOBAL validate_password.policy = LOW;
    CREATE USER ‘ranger’@‘%’ IDENTIFIED BY ‘xxxxmmxxxx’;
    ALTER USER ‘ranger’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘xxxxmmxxxx’;
    FLUSH PRIVILEGES;

安装Ranger
######################################################################################################

1. 创建组 groupadd ranger

2. 创建用户 useradd -m -s /bin/bash -g ranger ranger

3. 设置密码 echo “ranger:xxxxmmxxxx” | sudo chpasswd

编辑/data01/ranger-2.8.0-admin/install.properties
setup_mode=SeparateDBA
#mysql驱动
SQL_CONNECTOR_JAR=/opt/doris/jdbc_drivers/mysql-connector-java-8.0.25.jar
#mysql的主机名和root用户的用户名密码
db_root_user=root
db_root_password=xxxxmmxxxx==
db_host=xxxxxxxx.142
db_port=16603
#ranger需要的数据库名和用户信息,需要和之前创建的信息要一一对应
db_name=ranger
db_user=ranger
db_password=xxxxmmxxxx
db_url=jdbc:mysql://xxxxxxxx.142:16603/ranger?useSSL=false&allowPublicKeyRetrieval=true
db_root_url=jdbc:mysql://xxxxxxxx.142:16603/ranger?useSSL=false&allowPublicKeyRetrieval=true
db_driver=com.mysql.cj.jdbc.Driver
#其他ranger admin需要的用户密码(最少8个字符)
rangerAdmin_password=xxxxmmxxxx
rangerTagsync_password=xxxxmmxxxx
rangerUsersync_password=xxxxmmxxxx
keyadmin_password=xxxxmmxxxx
#ranger存储审计日志的路径和url,默认为solr
audit_store=solr
audit_solr_urls=http://xxxxxxxx.142:6083/solr/ranger_audits
#策略管理器的url,rangeradmin安装在哪台机器,主机名就为对应的主机名
policymgr_external_url=http://xxxxxxxx.142:6080
#启动ranger admin进程的linux用户信息
unix_user=ranger
unix_user_pwd=xxxxmmxxxx
unix_group=ranger

初始化ranger-admin脚本

/data01/ranger-2.8.0-admin/setup.sh

/data01/ranger-2.8.0-admin/set_globals.sh

修改时区
vi /data01/ranger-2.8.0-admin/ews/ranger-admin-services.sh
-Duser.timezone=Asia/Shanghai

启动ranger-admin
ranger-admin start

登陆网页查看:http://xxxxxxxx.142:6080 admin : xxxxmmxxxx

######################################################################################################
https://mirrors.aliyun.com/apache/ranger/2.8.0/?spm=a2c6h.25603864.0.0.6043362faGlrpv
tar -zxvf ranger-2.8.0-usersync.tar.gz -C /data01

编辑/data01/ranger-2.8.0-usersync/install.properties
#rangeradmin的url
POLICY_MGR_URL =http://xxxxxxxx.142:6080
#同步间隔时间,单位(分钟)
SYNC_INTERVAL = 1
#运行此进程的linux用户
unix_user=ranger
unix_group=ranger
#rangerUserSync的用户密码,参考rangeradmin中install.properties的配置
rangerUsersync_password=xxxxmmxxxx

初始化ranger-usersync脚本
/data01/ranger-2.8.0-usersync/setup.sh

启动ranger-usersync
ranger-usersync start

登录ranger admin的web-UI界面,查看用户信息

Ranger与Ldap集成
######################################################################################################
ldapsearch -H ldap://xxxxxxxx.142:389 -x -D “cn=admin,dc=gtk,dc=com” -w ‘xxxxmmxxxx’ -b “dc=gtk,dc=com” -s base

修改设置/data01/ranger-2.8.0-usersync/install.properties
SYNC_SOURCE = ldap
SYNC_LDAP_URL = ldap://xxxxxxxx.142:389
SYNC_LDAP_BIND_DN = cn=admin,dc=gtk,dc=com
SYNC_LDAP_SEARCH_BASE = dc=gtk,dc=com
SYNC_LDAP_USER_SEARCH_BASE = ou=People,dc=gtk,dc=com
SYNC_LDAP_USER_OBJECT_CLASS = posixAccount
SYNC_GROUP_SEARCH_ENABLED=true
SYNC_GROUP_USER_MAP_SYNC_ENABLED=true
SYNC_GROUP_SEARCH_BASE=ou=Group,dc=gtk,dc=com
SYNC_GROUP_OBJECT_CLASS=posixGroup
SYNC_GROUP_MEMBER_ATTRIBUTE_NAME=memberUid

执行/data01/ranger-2.8.0-usersync/setup.sh
ranger-usersync restart

Ranger与Doris集成
######################################################################################################
Ranger安装Doris插件

1、下载 ranger-doris-plugin-3.0.0-SNAPSHOT.jar mysql-connector-java-8.0.25.jar ranger-servicedef-doris.json
2、将下载好的文件放到 Ranger 服务的 ranger-plugins/doris 目录下
mkdir /data01/ranger-2.8.0-admin/ews/webapp/WEB-INF/classes/ranger-plugins/doris
chmod -R 777 /data01/ranger-2.8.0-admin/ews/webapp/WEB-INF/classes/ranger-plugins/doris
3、重启 Ranger 服务。

4、下载 ranger-servicedef-doris.json
执行以下命令上传定义文件到 Ranger 服务:
curl -u admin:xxxxmmxxxx -X POST
-H “Accept: application/json”
-H “Content-Type: application/json”
http://xxxxxxxx.142:6080/service/plugins/definitions
-d@ranger-servicedef-doris.json

5、Ranger页面配置接入Doris源:
xxxxxxxx.121 root xxxxmmxxxx jdbc:mysql://xxxxxxxx.121:9030
xxxxxxxx.142/143/144 xxxxxxxx.96 root xxxxmmxxxx== jdbc:mysql://xxxxxxxx.96:9030

/opt/sdb/fe/conf/fe.conf
Doris与Ldap集成
######################################################################################################
在 /opt/doris/fe/conf/fe.conf 中设置认证方式:
authentication_type=ldap
在 /opt/doris/fe/conf/ldap.conf 中配置 LDAP 服务的连接信息:
ldap_authentication_enabled = true
ldap_host = xxxxxxxx.142
ldap_port = 389
ldap_admin_name = cn=admin,dc=gtk,dc=com
ldap_user_basedn = ou=people,dc=gtk,dc=com
ldap_user_filter = (&(uid={login}))
ldap_group_basedn = ou=group,dc=gtk,dc=com

启动 fe 后,使用 root 或 admin 账号登录 Doris,设置 LDAP 管理员密码:
set ldap_admin_password = password(‘xxxxmmxxxx’);

LDAP 认证要求客户端以明文方式发送密码,因此需要启用明文验证插件。
MySQL Client启用明文验证插件,设置环境变量(永久生效)
echo “export LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN=1” >> ~/.bash_profile && source ~/.bash_profile

登录时添加参数(单次生效)mysql -hxxxxxxx.121 -P9030 -uroot -pxxxxmmxxxx --enable-cleartext-plugin

mysql -hxxxxxxx.121 -P9030 -udemo -pdemo --enable-cleartext-plugin

JDBC Client需要Doris开启SSL
fe.conf 中添加 enable_ssl=true
jdbcUrl = “jdbc:mysql://xxxxxxxx.121:9030/?useSSL=true&sslMode=REQUIRED”

######################################################################################################
更改Doris配置使用Ranger权限管理

1、在 fe/conf/fe.conf 文件中配置鉴权方式为 ranger :
access_controller_type=ranger-doris
2、在所有 FE 的 conf 目录创建 ranger-doris-security.xml 文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> ranger.plugin.doris.policy.cache.dir /data01/ranger/cache/ ranger.plugin.doris.policy.pollIntervalMs 30000 ranger.plugin.doris.policy.rest.client.connection.timeoutMs 60000 ranger.plugin.doris.policy.rest.client.read.timeoutMs 60000 ranger.plugin.doris.policy.rest.url http://xxxxxxxx.142:6080 ranger.plugin.doris.policy.source.impl org.apache.ranger.admin.client.RangerAdminRESTClient ranger.plugin.doris.service.name WFMPP

其中需要将 ranger.plugin.doris.policy.cache.dir 和 ranger.plugin.doris.policy.rest.url 改为实际值。

3、重启集群

######################################################################################################
权限示例
在 Ldap中 中创建 user1,在 Doris 与 Ranger 中均有user1.

随着人类对生命健康需求的不断增长,新药研发面临着前所未有的挑战。传统的药物研发流程通常耗时长达十年以上,耗资数十亿美元,且最终成功率极低,这在制药界被称为“反摩尔定律”困境。近年来,人工智能技术的飞速发展,特别是深度学习和大数据分析的广泛应用,为新药发现带来了革命性的契机。人工智能能够从海量的化学和生物数据中挖掘潜在规律,显著加速药物靶点发现、先导化合物优化等关键环节。在此背景下,本研究旨在设计并实现一个基于人工智能的新药发现辅助系统,以期为传统药物研发流程提供高效的智能化辅助工具,从而有效缩短研发周期并大幅降低研发成本。本研究以Python作为主要开发语言,深度结合PyTorch和TensorFlow两大主流深度学习框架,并集成RDKit化学信息学工具包,构建了一个功能完善的新药发现辅助系统。系统的核心目标是利用先进的人工智能技术辅助新药分子的设计活性评估。在研究方法上,本文创新性地提出了一种融合多模态数据的新药发现算法。该算法综合处理分子的多种表示形式,包括一维的SMILES序列、二维的分子图结构以及三维的空间构象数据。通过构建多通道神经网络,系统能够有效提取并融合不同模态的特征,从而全面捕捉分子的理化性质生物学活性之间的复杂非线性关系。 【课程报告内容】 摘要 第1章 绪论 第2章 相关技术理论 第3章 系统需求分析 第4章 系统总体设计 第5章 系统详细设计实现 第6章 系统测试分析 第7章 总结展望 参考文献 附件-实现指南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值