前言:在内网环境中部署LDAP并在CDH的hive和impala中集成,其中配置的端口,镜像名,密码等需要根据自己情况进行更改
1、镜像下载
在有网络的服务器上下载镜像或直接下载,这里需要自行配置下docker镜像下载地址
# 下载openldap镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/osixia/openldap:stable
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/osixia/openldap:stable docker.io/osixia/openldap:stable
# 下载phpldapadmin镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/osixia/phpldapadmin:latest
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/osixia/phpldapadmin:latest docker.io/osixia/phpldapadmin:latest
2、导出镜像
docker save -o /app/installationPackage/phpldapadmin.tar osixia/phpldapadmin:latest
3、将镜像导入内网服务器
docker load -i openldap.tar
docker load -i phpldapadmin.tar
4、启动openldap
docker run -p 389:389 -p 服务器暴露端口:636 --name ldap --network bridge --hostname openldap-host --env LDAP_ORGANISATION="test" --env LDAP_DOMAIN="test.com" --env LDAP_ADMIN_PASSWORD="test" --detach 31d1d6e16394
LDAP_ADMIN_PASSWORD:密码
5、启动phpldapadmin
docker run -d --privileged -p 服务器暴露端口:80 --name ldap_web --env PHPLDAPADMIN_HTTPS=false --env PHPLDAPADMIN_LDAP_HOSTS=ip --detach 镜像id
6、打开创建phpldapadmin页面创建单元,用户组,用户
记得放开服务器openldap和phpldapadmin使用的端口
这部分内容参考LDAP使用docker安装部署与使用
6.1 登录
浏览器打开http://ip:服务器暴露端口
用户 cn=admin,dc=test,dc=com 密码 test
6.2 创建一个组织单元
创建一个组织单元
击刚创建好的cdh的条目,点击create a child entry,选择Posix Group,创建一个用户组test
在新建的组下添加用户cdh,选中test条目,创建子条目,选择User Account
7、CDH配置ldap
我的CDH版本为6.2.1,我这里没有启动ssl,生产环境建议启用
7.1 hive配置ldap
启用ldap
LDAP URL:ldap://ip:端口
LDAP BaseDN:cn=cdh,cn=test,ou=cdh,dc=test,dc=com
7.2 impala配置ldap
启用ldap
LDAP URL:ldap://ip:端口
Impala Daemon 命令行参数高级配置代码段(安全阀):
–ldap_passwords_in_clear_ok
–ldap_bind_pattern=cn=cdh,cn=test,ou=cdh,dc=test,dc=com
这里也配置LDAP BaseDN的话连接不上,impala不允许在未启用 SSL的情况下进行明文传输凭据
–ldap_passwords_in_clear_ok 允许在不加密的连接(明文)上传输 LDAP 认证的密码
在CDH页面中配置ldap_bind_pattern会提示报错 提示LDAP 模式 的值应匹配 .#UID.,这里需要配置uid
我这里使用的固定dn所以直接在Impala Daemon 命令行参数高级配置代码段(安全阀)中再换行新增–ldap_bind_pattern=cn=cdh,cn=test,ou=cdh,dc=test,dc=com
配置完后重启hive,impala应用新配置
8、连接
8.1 hive地址:
url: jdbc:hive2://hive的ip:10000
username: cn=cdh,cn=test,ou=cdh,dc=test,dc=com
password: test
8.2 impala地址:
通过jdbc的url可以直接连接
jdbc:impala://impala节点ip:21050/default;AuthMech=3;UID=fname;PWD=test
或者通过账号密码连接
jdbc:impala://impala节点ip:21050/default;AuthMech=3;SSL=0
账号 cn=cdh,cn=test,ou=cdh,dc=test,dc=com或fname
密码 test