hive+impala+hue+sentry+ldap整合

公司用的cdh版本为5.14,sentry集成的步骤很简单,参照官方文档就可以完成了:
https://www.cloudera.com/documentation/enterprise/5-14-x/topics/sentry.html
本文主要写一些openldap的搭建和phpldap的使用,还有ldap和(hive,impala,hue)的整合。
ldap的具体概念可以参照这篇文章
LDAP概念和原理介绍

我的系统是centos6,所以有些命令centos7的不太一样,总体区别不大。
一.安装OpenLDAP
yum install openldap openldap-clients openldap-servers
安装完直接启动
service slapd start
设置管理员密码
slappasswd -h {SSHA}
然后会让你输入一个明文密码,返回给你一个加密的密码,记住这个返回的密码

使用ldapsearch命令查询管理员的dn:
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcRootDN=cn=Manager,dc=**,dc=com dn olcRootDN olcRootPW
这里返回的dn是olcDatabase={2}bdb,cn=config,密码等信息也都一并返回。这里有用的是dn和密码的加密方式,比如这里是SSHA,dn是后面修改的Entry DN,而知道密码的加密方式就可以使用该加密方式生成新密码。

使用ldapmodify修改条目

使用下面的命令来修改管理员条目:
ldapmodify -Y EXTERNAL -H ldapi:///

然后输入修改的条目,也就是第1步中获取到的DN:

dn: olcDatabase={2}bdb,cn=config
#这是第1步获取的管理员dn

replace: olcRootPW

olcRootPW: {SSHA}vAYFH48G4IfrpD57gTR/DNZqLHWzR+Fg
#这里是上面slappasswd生成的密码

输入完毕后,按Crtl+D键保存退出交互模式。

如果出现:
modifying entry "olcDatabase={2}bdb,cn=config"

重启服务使修改生效
/etc/init.d/slapd restart

到此就设定好了管理员的密码。可以用客户端去管理openldap了

打算使用phpldapadmin来管理openldap,这个工具使用的人较多,网上文档多,出现问题容易解决。

二.安装phpldapadmin
首先安装Apache和PHP:
yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml

然后安装phpldapadmin:
yum -y install phpldapadmin

httpd与phpldapadmin进行集成:
修改配置文件:
[root@localhost ~]# vim /etc/phpldapadmin/config.php
#397行取消注释,398行添加注释
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');

[root@localhost ~]# vim /etc/httpd/conf.d/phpldapadmin.conf

// 修改配置


把下面的Deny from all 改为Allow from all

修改完之后启动:
service httpd restart
界面:

hive+impala+hue+sentry+ldap整合_第1张图片

登陆
用户名,默认是 cn=Manager,dc=my-domain,dc=com(这个也可以改的,仿照修改密码的步骤)
密码就输入刚开始设置的密码

登陆进去后,我的管理界面报这个信息:
This base cannot be created with PLA
显示结果如下:
hive+impala+hue+sentry+ldap整合_第2张图片

经过查询,最终总结和处理如下:

1、首先需要在/etc/openldap/目录下,创建一个base.ldif文件,如下所示:
hive+impala+hue+sentry+ldap整合_第3张图片写uid=,xxxxx

2、在base.ldif文件中,写入如下信息,为创建初始化根节点做准备工作:
hive+impala+hue+sentry+ldap整合_第4张图片
3、执行ldapadd -f base.ldif -x -D cn=Manager,dc=DouBi,dc=Ren –W 输入之前配置OpenLDAP的密码后,即可完成创建LDAP根节点,如下图所示:
hive+impala+hue+sentry+ldap整合
完成以上操作后,再回到phpldapadmin页面,可以看到,已经正常出现了根节点,并可以创建相关OU、Group、Account等对象,如下图所示:
hive+impala+hue+sentry+ldap整合_第5张图片

三.整合ldap和hive,impala,hue
先用phpldapadmin在ldp创建一个用户去测试:
首先创建一个ou,叫users
hive+impala+hue+sentry+ldap整合_第6张图片

然后再在users下创建一个用户:jiandan
注意,在创建新条目时,可以选择选择默认,然后选inetOrgPerson,那么创建好之后记录则是以uid开头的,如果选Posix或者Generic User Account,记录则是以cn开头的,这个和hive+impala+hue+sentry+ldap整合
按下图选择
hive+impala+hue+sentry+ldap整合_第7张图片
hive+impala+hue+sentry+ldap整合_第8张图片
hive+impala+hue+sentry+ldap整合_第9张图片

首先整合hive:
在cdh里面修改一下配置:
hive+impala+hue+sentry+ldap整合_第10张图片

这张图用的别人的,如果按我的配置,BaseDN则写:
ou=users,dc=my-domain,dc=com
然后用beeline进行测试
hive+impala+hue+sentry+ldap整合_第11张图片
这样就是通过ldap的验证了,如果密码不正确则会:
hive+impala+hue+sentry+ldap整合_第12张图片

然后整合impala:
修改配置,和hive类似:
hive+impala+hue+sentry+ldap整合_第13张图片
不过要在高级代码段里面增加一个参数,因为我们的密码是明文传输,否则imapala启动不了。
重启impala后,我们来测试
hive+impala+hue+sentry+ldap整合_第14张图片
发现已经ok了。

最后我们来整合hue
首先需要配置这些
hive+impala+hue+sentry+ldap整合_第15张图片
这个配置好以后,我们就可以登陆hue了,我们看到登陆的界面已经多了个ldap
hive+impala+hue+sentry+ldap整合_第16张图片

登陆已经可以了,不过登陆进去后会报一些错误:
[文件]
hive+impala+hue+sentry+ldap整合_第17张图片

我们需要配置一些额外的参数从而让hue用户可以代理其他的用户
1.在ldap中创建hue用户
2.hue_safety_valve.ini 的 Hue 服务高级配置代码段(安全阀)中配这些

[beeswax]
close_queries=True
use_sasl=False
auth_username=hue
auth_password=xxxxxxx
[impala]
server_host=datanode1
server_interface=hiveserver2
server_port=21050
query_timeout_s=100
impersonation_enabled=True
auth_username=hue
auth_password=xxxxxxx

在hive和i mpala的core-site.xml 的 Hive 服务高级配置代码段(安全阀)中增加以下配置:

hive+impala+hue+sentry+ldap整合_第18张图片

impala的Impala 命令行参数高级配置代码段(安全阀)中再加上
--authorized_proxy_user_config=hue=*
hive+impala+hue+sentry+ldap整合_第19张图片

然后就不会报这个错误了。

以上就基本完成了ldap和hive impala hue的整合。

下周会继续研究
LDAP和HUE的集成(搜索绑定)
https://blog.csdn.net/u011026329/article/details/79171890

转载于:https://blog.51cto.com/xiaolanlan/2378004

你可能感兴趣的:(ldap,大数据)