LDAP搭建
LDAP的搭建步骤可参考文章《Centos 7 搭建Openldap,使用lam做web管理》 Centos 7 搭建Openldap,使用lam做web管理 – 简书
Presto搭建
使用的是trino中的presto-server-350版本,350往后的版本对包空间名称做了更改(io.prestosql -> io.trino),ranger2.1.0版本对其还不兼容。
presto-server-350下载地址:https://repo1.maven.org/maven2/io/prestosql/presto-server/350/presto-server-350.tar.gz
trino官方网站:Trino | Distributed SQL query engine for big data
我们将presto部署到3个服务节点,例如192.168.40.1/192.168.40.2/192.168.40.3
第1步
下载jdk11,presto需要的jdk11+。
选择jdk-11.0.12_linux-x64_bin.tar.gz
第2步
将jdk上传到服务器节点192.168.40.1的/data目录下,并解压 “tar -zxvf jdk-11.0.12_linux-x64_bin.tar.gz”
第3步
新增presto用户。
命令:useradd presto
第4步
编辑presto用户的java环境变量。
命令:vim /home/presto/.bashrc
# JAVA
export JAVA_HOME=/data/jdk-11.0.12/
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
切换到presto用户,查看java版本是否是java 11
命令: su presto
java -version
第5步
下载presto软件包,并将软件包上传到服务器192.168.40.1的/data目录下,并解压。
命令: tar -zxvf presto-server-350.tar.gz
第6步
将/data/presto-server-350授权给用户presto。
命令: chown -R presto:presto /data/presto-server-350
第7步
应为presto要开启https访问,所以要设置SSL证书,证书生成步骤如下。
a.生成keystore.jks,命令:keytool -genkeypair -alias presto_server -dname “C=CN, ST=Guangdong, L=Shenzhen, O=test.cn, OU=presto, CN=presto.test.cn” -validity 3650 -keyalg RSA -keysize 2048 -keystore keystore.jks -keypass presto -storepass presto
b.导出证书,命令:keytool –exportcert -alias presto_server -file presto_server.cer -keystore keystore.jks -storepass presto
c.生成truststore.jks,命令:keytool –importcert -alias presto_server -file presto_server.cer -keystore truststore.jks -storepass presto
第8步
将第7步生成的keystore.jks/truststore.jks移动到/data/presto-server-350/etc/文件夹下
第9步
编辑config.properties配置文件,192.168.40.1这个服务器节点,我们作为coordinator节点
命令:vim /data/presto-server-350/etc/config.properties
# coordinator节点
coordinator=true
# 是否复用为 worker 节点, false 为否。默认为 false
node-scheduler.include-coordinator=true
# 本节点 presto 服务端口号
http-server.http.port=8010
# query.max-memory-per-node * worker 节点的个数
query.max-memory=4GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
# 本节点、 端口号
discovery.uri=http://192.168.40.1:8010
http-server.authentication.type=PASSWORD
http-server.https.enabled=true
http-server.https.port=8443
http-server.https.keystore.path=/data/presto-server-350/etc/keystore.jks
http-server.https.keystore.key=presto
第10步
编辑password-authenticator.properties配置文件,用于同步ldap数据。
命令:vim /data/presto-server-350/etc/password-authenticator.properties
password-authenticator.name=ldap
#ldap服务地址
ldap.url=ldap://192.168.40.1:389
#ldap用户所在节点
ldap.user-bind-pattern=uid=${USER},ou=People,dc=test,dc=cn
#允许不安全访问,ldap可以不使用ldaps
ldap.allow-insecure=true
第11步
编辑jvm.config配置文件
命令:vim /data/presto-server-350/etc/jvm.config
-server
-Xmx4G
-XX:-UseBiasedLocking
-XX:+UseG1GC
-XX:G1HeapRegionSize=8M
-XX:+ExplicitGCInvokesConcurrent
-XX:+ExitOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError
-XX:ReservedCodeCacheSize=128M
-XX:PerMethodRecompilationCutoff=10000
-XX:PerBytecodeRecompilationCutoff=10000
-Djdk.attach.allowAttachSelf=true
-Djdk.nio.maxCachedBufferSize=2000000
第12步
编辑log.properties配置文件
命令:vim /data/presto-server-350/etc/log.properties
io.prestosql=INFO
#io.prestosql=DEBUG
#io.prestosql.server.PluginManager=DEBUG
第13步
编辑node.properties配置文件
命令:vim /data/presto-server-350/etc/node.properties
# presto 名称, 同一集群必须相同
node.environment=presto_350
# presto 节点唯一标识,同一个集群中的每个节点都不相同, 执行命令 uuidgen 读取
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
# 日志目录、 计算临时存储目录, presto 用户有读写权限
node.data-dir=/data/presto-data
第14步
配置presto连接的数据库配置
首先创建catalog文件夹,路径/data/presto-server-350/etc/catalog
编辑mysql数据库连接配置,例如
vim /data/presto-server-350/etc/catalog/mysql.properties
connector.name=mysql
connection-url=jdbc:mysql://192.168.40.1:3306?useSSL=false
connection-user=root
connection-password=root
编辑postgresql数据库连接配置,例如
vim /data/presto-server-350/etc/catalog/postgresql.properties
connector.name=postgresql
connection-url=jdbc:postgresql://192.168.40.1:5432/postgres
connection-user=postgres
connection-password=postgres
第15步
启动presto
命令:/data/presto-server-350/bin/launcher start
启动完成后,查看日志,是否正常
查看启动日志
命令:cat /data/presto-data/var/log/launcher.log
查看服务日志
命令: cat /data/presto-data/var/log/server.log
第16步
安装配置另外节点192.168.40.2/192.168.40.3,这两个节点是作为worker节点,所以步骤和之上稍有所不同。
按照上面步骤第1~14步,跳过第7、8步,worker节点不需要配置https。
并且需要修改两个worder节点的config.properties配置文件内容。
config.properties配置如下
# worker节点
coordinator=false
# 是否复用为 worker 节点, false 为否。默认为 false
node-scheduler.include-coordinator=true
# 本节点 presto 服务端口号
http-server.http.port=8010
# query.max-memory-per-node * worker 节点的个数
query.max-memory=4GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
# Presto 中 coordinator 所在节点,以及其端口号
discovery.uri=http://192.168.40.1:8010
node.properties配置文件内容需要修改node.id将其修改为唯一。例如
192.168.40.2节点的node.properties
# presto 名称, 同一集群必须相同
node.environment=presto_350
# presto 节点唯一标识,同一个集群中的每个节点都不相同, 执行命令 uuidgen 读取
node.id=uuuuuuuuuuu-uuuuuuuuu-uuuuuuuuu-uuuu
# 日志目录、 计算临时存储目录, presto 用户有读写权限
node.data-dir=/data/presto-data
192.168.40.3节点的node.properties
# presto 名称, 同一集群必须相同
node.environment=presto_350
# presto 节点唯一标识,同一个集群中的每个节点都不相同, 执行命令 uuidgen 读取
node.id=dddddddddd-dddddddddd-dddddddddd-ddddddd
# 日志目录、 计算临时存储目录, presto 用户有读写权限
node.data-dir=/data/presto-data
第17步
按装完presto三个节点后,测试是否可以正常访问。使用presto-cli-350-executable.jar测试。
下载地址:https://repo1.maven.org/maven2/io/prestosql/presto-cli/350/presto-cli-350-executable.jar
将presto-cli-350-executable.jar放到第一个节点192.168.40.1的/data/presto-server-350文件夹下,并且授权可执行
命令:chmod +x /data/presto-server-350/presto-cli-350-executable.jar
编辑hosts文件添加映射 “192.168.40.1 presto.test.cn”
命令:vim /etc/hosts
链接presto测试访问
命令:/data/presto-server-350/presto-cli-350-executable.jar –server https://presto.test.cn:8443 –catalog mysql –user lisi –truststore-path /data/presto-server-350/etc/truststore.jks –truststore-password presto –password
连接成功后,就可以查询数据库相关表数据。
Ranger搭建
选用的是ranger 2.1.0版本,官方未提供编译好的安装包,需要自己编译。
源码包下载地址:Apache Download Mirrors
官网地址:Apache Ranger – Introduction
如果不想自己编辑,可以直接下载编译好的安装包,下载地址
链接:百度网盘 请输入提取码
提取码:g4c2
第1步
将源码包上传到服务器/tmp/目录下,并解压
命令: tar -zxvf /tmp/apache-ranger-2.1.0.tar.gz
第2步
安装solr,编辑solr配置信息
命令:vim /tmp/apache-ranger-2.1.0/security-admin/contrib/solr_for_audit_setup/install.properties,需要修改的配置如下
SOLR_INSTALL=true
SOLR_DOWNLOAD_URL=http://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.9.0/solr-8.9.0.tgz
SOLR_RANGER_HOME=/data/solr/ranger_audit_server
SOLR_RANGER_DATA_FOLDER=/data/solr/ranger_audit_server/data
SOLR_LOG_FOLDER=/data//solr/log/solr/ranger_audits
修改完配置文件,执行setup.sh脚本
命令:sh /tmp/apache-ranger-2.1.0/security-admin/contrib/solr_for_audit_setup/setup.sh
查看安装记录信息
命令: cat /data/solr/ranger_audit_server/install_notes.txt
安装完成后,启动solr
命令:/data/solr/ranger_audit_server/scripts/start_solr.sh
第3步
将编译源码得到的ranger-2.1.0-admin.tar.gz上传到服务器/data目录下并解压
命令:tar -zxvf /data/ranger-2.1.0-admin.tar.gz
修改install.properties配置文件
命令:vim /data/ranger-2.1.0-admin/install.properties
修改内容如下
#DB_FLAVOR=MYSQL|ORACLE|POSTGRES|MSSQL|SQLA
DB_FLAVOR=POSTGRES
SQL_CONNECTOR_JAR=/data/ranger-2.1.0-admin/postgresql-42.2.5.jar
db_root_user=postgres
db_root_password=Wise#postgres321
db_host=192.168.40.1
db_name=ranger
db_user=ranger
db_password=Ranger@2021
rangerAdmin_password=Ranger@2021
rangerTagsync_password=Ranger@2021
rangerUsersync_password=Ranger@2021
keyadmin_password=Ranger@2021
audit_store=solr
audit_solr_urls=http://localhost:6083/solr/ranger_audits
audit_solr_user=solr
audit_solr_password=
audit_solr_zookeepers=
policymgr_external_url=http://192.168.40.1:6080
unix_user=root
unix_user_pwd=root
unix_group=root
#配置LDAP信息
authentication_method=LDAP
xa_ldap_url=ldap://192.168.40.1:389
xa_ldap_userDNpattern=uid={0},ou=People,dc=test,dc=cn
xa_ldap_groupSearchBase=ou=group,dc=test,dc=cn
xa_ldap_groupSearchFilter=(member=uid={0},ou=People,dc=test,dc=cn)
xa_ldap_groupRoleAttribute=cn
xa_ldap_base_dn=dc=test,dc=cn
xa_ldap_bind_dn=cn=admin,ou=People,dc=test,dc=cn
xa_ldap_bind_password=test
第4步
安装ranger-admin
命令:/data/ranger-2.1.0-admin/setup.sh
安装完成后,执行启动命令
命令:/data/ranger-2.1.0-admin/ews/ranger-admin-services.sh start
启动完成后,查看日志是否正常,日志所在路径/data/ranger-2.1.0-admin/ews/logs
第5步
将编译源码得到的ranger-2.1.0-usersync.tar.gz上传到服务器/data目录下并解压
命令:tar -zxvf /data/ranger-2.1.0-usersync.tar.gz
修改install.properties配置文件
命令:vim /data/ranger-2.1.0-usersync/install.properties
修改内容如下
POLICY_MGR_URL =http://192.168.40.1:6080
SYNC_SOURCE = ldap
MIN_UNIX_USER_ID_TO_SYNC = 0
MIN_UNIX_GROUP_ID_TO_SYNC = 0
SYNC_INTERVAL = 60
unix_user=root
unix_group=root
rangerUsersync_password=Ranger@2021
SYNC_LDAP_URL = ldap://192.168.40.1:389
SYNC_LDAP_BIND_DN = cn=admin,dc=test,dc=cn
SYNC_LDAP_BIND_PASSWORD = test
SYNC_LDAP_SEARCH_BASE = dc=test,dc=cn
SYNC_LDAP_USER_SEARCH_BASE = ou=People,dc=test,dc=cn
SYNC_LDAP_USER_NAME_ATTRIBUTE = uid
第6步
安装ranger-usersync
命令:/data/ranger-2.1.0-usersync/setup.sh
安装完成后,需修改配置文件ranger-ugsync-site.xml
命令:vim /data/ranger-2.1.0-usersync/conf/ranger-ugsync-site.xml
修改内容如下:
<property>
<name>ranger.usersync.enabled</name>
<value>true</value>
</property>
<property>
<name>ranger.usersync.cookie.enabled</name>
<value>false</value>
</property>
启动ranger-usersync
命令:/data/ranger-2.1.0-usersync/start.sh
日志文件在/data/ranger-2.1.0-usersync/logs
第7步
在浏览器中http://192.168.40.1:6080,用户名为admin,密码为Ranger@2021
Presto配置Ranger插件
第1步
将Ranger编译源码得到的ranger-2.1.0-presto-plugin.tar.gz上传到Presto的coordinator服务器节点/data目录下,并解压
命令:tar -zxvf /data/ranger-2.1.0-presto-plugin.tar.gz
第2步
编辑配置文件install.properties
命令:vim /data/ranger-2.1.0-presto-plugin/install.properties
编辑内容如下
POLICY_MGR_URL=http://192.168.40.1:6080
REPOSITORY_NAME=prestoTest
COMPONENT_INSTALL_DIR_NAME=/data/presto-server-350
XAAUDIT.SUMMARY.ENABLE=false
XAAUDIT.SOLR.ENABLE=true
XAAUDIT.SOLR.URL=http://localhost:6083/solr/ranger_audits
XAAUDIT.SOLR.USER=solr
XAAUDIT.SOLR.PASSWORD=NONE
XAAUDIT.SOLR.ZOOKEEPER=NONE
XAAUDIT.SOLR.FILE_SPOOL_DIR=/data/solr/log/presto/audit/solr/spool
CUSTOM_USER=presto
CUSTOM_GROUP=presto
第3步
安装插件
命令:/data/ranger-2.1.0-presto-plugin/enable-presto-plugin.sh
安装完成,查看presto目录中etc文件夹下是否有ranger插件
重启presto