博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hive+impala+hue+sentry+ldap整合
阅读量:6436 次
发布时间:2019-06-23

本文共 3066 字,大约阅读时间需要 10 分钟。

公司用的cdh版本为5.14,sentry集成的步骤很简单,参照官方文档就可以完成了:

本文主要写一些openldap的搭建和phpldap的使用,还有ldap和(hive,impala,hue)的整合。
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

// 修改配置

<IfModule mod_authz_core.c>

把下面的Deny from all 改为Allow from all修改完之后启动:service httpd restart界面:

hive+impala+hue+sentry+ldap整合

登陆

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

登陆进去后,我的管理界面报这个信息:

This base cannot be created with PLA
显示结果如下:
hive+impala+hue+sentry+ldap整合

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

1、首先需要在/etc/openldap/目录下,创建一个base.ldif文件,如下所示:

hive+impala+hue+sentry+ldap整合写uid=<username>,xxxxx

2、在base.ldif文件中,写入如下信息,为创建初始化根节点做准备工作:

hive+impala+hue+sentry+ldap整合
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整合

三.整合ldap和hive,impala,hue

先用phpldapadmin在ldp创建一个用户去测试:
首先创建一个ou,叫users
hive+impala+hue+sentry+ldap整合

然后再在users下创建一个用户:jiandan

注意,在创建新条目时,可以选择选择默认,然后选inetOrgPerson,那么创建好之后记录则是以uid开头的,如果选Posix或者Generic User Account,记录则是以cn开头的,这个和hive+impala+hue+sentry+ldap整合
按下图选择
hive+impala+hue+sentry+ldap整合
hive+impala+hue+sentry+ldap整合
hive+impala+hue+sentry+ldap整合

首先整合hive:

在cdh里面修改一下配置:
hive+impala+hue+sentry+ldap整合

这张图用的别人的,如果按我的配置,BaseDN则写:

ou=users,dc=my-domain,dc=com
然后用beeline进行测试
hive+impala+hue+sentry+ldap整合
这样就是通过ldap的验证了,如果密码不正确则会:
hive+impala+hue+sentry+ldap整合

然后整合impala:

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

最后我们来整合hue

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

登陆已经可以了,不过登陆进去后会报一些错误:

[文件]
hive+impala+hue+sentry+ldap整合

我们需要配置一些额外的参数从而让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整合

impala的Impala 命令行参数高级配置代码段(安全阀)中再加上

--authorized_proxy_user_config=hue=*
hive+impala+hue+sentry+ldap整合

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

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

下周会继续研究

LDAP和HUE的集成(搜索绑定)

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

你可能感兴趣的文章
Unity3d游戏开发之-单例设计模式-多线程一
查看>>
通过jquery定位元素
查看>>
Tooltip表单验证的注册表单
查看>>
UWP开发中两种网络图片缓存方法
查看>>
超8千Star,火遍Github的Python反直觉案例集!
查看>>
【msdn wpf forum翻译】如何在wpf程序(程序激活时)中捕获所有的键盘输入,而不管哪个元素获得焦点?...
查看>>
全球首家!阿里云获GNTC2018 网络创新大奖 成唯一获奖云服务商
查看>>
Python简单HttpServer
查看>>
Java LinkedList工作原理及实现
查看>>
负载均衡SLB的基本使用
查看>>
Centos 7 x86 安装JDK
查看>>
微信小程序的组件用法与传统HTML5标签的区别
查看>>
Hangfire 使用笔记
查看>>
(C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标?
查看>>
教你彻底学会c语言基础——文件操作
查看>>
如何使用免费控件将Word表格中的数据导入到Excel中
查看>>
seafile服务器配置
查看>>
HyperLedger Fabric 1.2 区块链应用场景(3.1)
查看>>
也谈谈初创公司的技术团队建设
查看>>
阿里云 APM 解决方案地图
查看>>