基于ambari 2.4.1 HDP-2.5.0 构建安全的hive数据库
来源:互联网 发布:尔雅网络通识课 编辑:程序博客网 时间:2024/05/28 04:53
基于ambari 2.4.1 HDP-2.5.0 构建安全的hive数据库
基本条件:
1. 利用ambari 启用kerberos
基本原理:
hadoop 代理机制:hadoop 可以使用"超级"用户,伪装为其他用户提交程序。且可以通过配置对被伪装的用户限定用户名,用户组和IP(或主机名)
详细参考http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/Superusers.html
hadoop 代理机制中限定权限的配置,其中的hive为hiveserver运行用户. 对组,用户,和hosts具有多个值的用','分开。'*'表示不限制
hadoop.proxyuser.hive.groups
hadoop.proxyuser.hive.users
hadoop.proxyuser.hive.hosts
具体方案:
1. 通过kdc统一管理hive用户,以文件或密码的文件提供给客户端进行认证
2. 通过hadoop.proxyuser.hive.groups/users/hosts 对用户进行hdfs级别的登陆限制
3.
验证步骤
本示例演示在系统中添加hdp用户,并通过beeline进行测试
1. 在kdc中分配principal用户,并导出keytab拷贝到客户端 (core-site.xml 中的hadoop.security.auth_to_local会把hdp/xj3@EXAMPLE 解析为hdp用户 )
addprinc -randkey hdp/xj3@EXAMPLE.COM
xst -norandkey -k /tmp/hdp.xj3.keytab hdp/xj3@EXAMPLE.COM
2. 获取ticket
kinit -kt /tmp/hdp.xj3.keytab hdp/xj3
3. 连接
beeline
!connect jdbc:hive2://xj2:10000/;principal=hive/xj2@EXAMPLE.COM;
显示错误信息
Error: Failed to open new session: java.lang.RuntimeException: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hive/xj2@EXAMPLE.COM is not allowed to impersonate hdp (state=,code=0)
4. 需要在namenode上创建hdp用户,并hadoop.proxyuser.hive.groups或hadoop.proxyuser.hive.users权限,具体配置如下
hadoop.proxyuser.hive.users hdp
在客户端用beeline 重新测试
备注:
使用参数
hadoop.security.auth_to_local
hive.server2.authentication.kerberos.keytab /etc/security/keytabs/hive.service.keytab
hive.server2.authentication.kerberos.principal hive/_HOST@EXAMPLE.COM
hive.server2.authentication.spnego.keytab /etc/security/keytabs/spnego.service.keytab
hive.server2.authentication.spnego.principal HTTP/_HOST@EXAMPLE.COM
hive.server2.authentication KERBEROS
hive.server2.enable.doAs true
hive.server2.thrift.port 10000
hive.server2.thrift.http.port 10001
hive.server2.transport.mode binary
注意事项:
如果通过group限制对hdfs的访问,需要在namenode上建立相应用户,以及对应的组
例如:hadoop.proxyuser.hive.groups 参数为hdfs,bdg
当有用户提交提交程序时,hdfs 会在namenode上查看主机中用户的组为bdg,如果不是就不予认证
https://github.com/apache/hive/blob/master/beeline/src/test/org/apache/hive/beeline/ProxyAuthTest.java
0 0
- 基于ambari 2.4.1 HDP-2.5.0 构建安全的hive数据库
- Ambari + HDP 升级 (Ambari 2.2.2 - 2.4.1 + HDP 2.4.2 - 2.5.0)
- Ambari 2.4.1 安装HDP 2.5中遇到的问题解决
- CentOS7使用本地库(Local Repository)安装Ambari-2.4.1和HDP-2.5.0
- 使用本地库(Local Repository)安装Ambari-2.4.1和HDP-2.5.0
- ambari && HDP
- 升级ambari、HDP版本(ambari 2.1升级到2.4、HDP2.3升级到2.5)
- Ambari学习14_升级ambari、HDP版本(ambari 2.1升级到2.4、HDP2.3升级到2.5)
- Ambari部署HDP出现的问题总结
- Centos6.5+Ambari的HDP搭建
- 基于hdp的flume
- Centos 7.2 安装 Ambari 2.2.2 + HDP 2.4.2 搭建Hadoop集群的环境配置
- 使用ambari安装hdp
- 记录下使用Ambari部署HDP集群的过程
- 基于Hortonworks的HDP Sandbox
- 基于hdp的kafka使用
- 基于hdp的kafka使用
- Hortonworks HDP Ambari自动安装
- Linux开启CoreDump功能
- C#中的引用传递、值传递
- 开始写博文
- 快速理解桥接模式
- RTMP学习(三)RTMP协议详解(转)
- 基于ambari 2.4.1 HDP-2.5.0 构建安全的hive数据库
- 静态广播和动态广播
- bzoj3123 【SDOI2013】森林 启发式合并
- 解决Maven下载依赖慢的问题
- java socket参数详解:OOBInline和UrgentData
- C# 动态对象(dynamic)的用法
- 在Solr6.3中创建core
- Android动画之旅(六)----放大镜的特效动画
- linux机器间内容的拷贝